伪静态web.config常见规则写法与参数介绍说明

伪静态web.config常见规则写法与参数介绍说明.

示例1:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="规则 1" stopProcessing="true">
                    <match url="^includes/(.*)" />
                    <action type="Rewrite" url="includes\/{R:1}" />
                </rule>
    <rule name="规则 2" stopProcessing="true">
                    <match url="^(blog)/includes/(.*)" />
                    <action type="Rewrite" url="{R:1}/includes\/{R:2}" />
                </rule>
                <rule name="规则 3" stopProcessing="true">
                    <match url="^(blog)/(.*).html(.*)" />
                    <action type="Rewrite" url="{R:1}/index.php\/{R:2}.html{R:3}" />
                </rule>
                <rule name="规则 4" stopProcessing="true">
                    <match url="^(.*).html(.*)" />
                    <action type="Rewrite" url="index.php\/{R:1}.html{R:2}" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

示例2:

<?xml version="1.0" encoding="UTF-8"?>

<configuration>

  <system.webServer>

    <rewrite>

      <rules>

        <rule name="Imported Rule 1">

          <match url="list-([0-9]+)\.html" ignoreCase="false"/>

          <action type="Rewrite" url="plus/list.php?tid={R:1}" appendQueryString="false"/>

        </rule>

        <rule name="Imported Rule 2">

          <match url="list-([0-9]+)-([0-9]+)-([0-9]+)\.html" ignoreCase="false"/>

          <action type="Rewrite" url="plus/list.php?tid={R:1}&TotalResult={R:2}&PageNo={R:3}" appendQueryString="false"/>

        </rule>

        <rule name="Imported Rule 3">

          <match url="view-([0-9]+)-([0-9]+)\.html" ignoreCase="false"/>

          <action type="Rewrite" url="plus/view.php?arcID={R:1}&pageno={R:2}" appendQueryString="false"/>

        </rule>

      </rules>

    </rewrite>

  </system.webServer>

</configuration>

示例3:

<?xml version="1.0" encoding="UTF-8"?>

<configuration>

  <system.webServer>

    <rewrite>

      <rules>

        <rule name="portal_topic">

          <match url="^(.*/)*topic-(.+).html\?*(.*)$"/>

          <action type="Rewrite" url="{R:1}/portal.php?mod=topic&topic={R:2}&{R:3}"/>

        </rule>

        <rule name="portal_article">

          <match url="^(.*/)*article-([0-9]+)-([0-9]+).html\?*(.*)$"/>

          <action type="Rewrite" url="{R:1}/portal.php?mod=view&aid={R:2}&page={R:3}&{R:4}"/>

        </rule>

        <rule name="forum_forumdisplay">

          <match url="^(.*/)*forum-(\w+)-([0-9]+).html\?*(.*)$"/>

          <action type="Rewrite" url="{R:1}/forum.php?mod=forumdisplay&fid={R:2}&page={R:3}&{R:4}"/>

        </rule>

        <rule name="forum_viewthread">

          <match url="^(.*/)*thread-([0-9]+)-([0-9]+)-([0-9]+).html\?*(.*)$"/>

          <action type="Rewrite" url="{R:1}/forum.php?mod=viewthread&tid={R:2}&extra=page%3D{R:4}&page={R:3}&{R:5}"/>

        </rule>

        <rule name="group_group">

          <match url="^(.*/)*group-([0-9]+)-([0-9]+).html\?*(.*)$"/>

          <action type="Rewrite" url="{R:1}/forum.php?mod=group&fid={R:2}&page={R:3}&{R:4}"/>

        </rule>

        <rule name="home_space">

          <match url="^(.*/)*space-(username|uid)-(.+).html\?*(.*)$"/>

          <action type="Rewrite" url="{R:1}/home.php?mod=space&{R:2}={R:3}&{R:4}"/>

        </rule>

        <rule name="home_blog">

          <match url="^(.*/)*blog-([0-9]+)-([0-9]+).html\?*(.*)$"/>

          <action type="Rewrite" url="{R:1}/home.php?mod=space&uid={R:2}&do=blog&id={R:3}&{R:4}"/>

        </rule>

        <rule name="forum_archiver">

          <match url="^(.*/)*(fid|tid)-([0-9]+).html\?*(.*)$"/>

          <action type="Rewrite" url="{R:1}/index.php?action={R:2}&value={R:3}&{R:4}"/>

        </rule>

        <rule name="plugin">

          <match url="^(.*/)*([a-z]+[a-z0-9_]*)-([a-z0-9_\-]+).html\?*(.*)$"/>

          <action type="Rewrite" url="{R:1}/plugin.php?id={R:2}:{R:3}&{R:4}"/>

        </rule>

      </rules>

    </rewrite>

  </system.webServer>

</configuration>

提示1、<rule>节点的name不能重复。

提示2、<match>里的url是一个正则表达式,实例里^(.*)t/([0-9,a-z]*)是一个常用的句式。

^匹配域名开头,如:https://tony.8952.com/,注意域名后面有个斜杠/

(.*)匹配任何字符。

([0-9,a-z]*)匹配任何数字和字母。

因此,^(.*)t/([0-9,a-z]*) 可以匹配如下的访问网址(假如网站域名是tony.8952.com):

提示3、<action type="Rewrite" ...>表示执行的类型是重写,里面的url是实际网址,{R:1}/list.asp?id={R:2} 的解释如下:

{R:1}对应<match>里的url的第一个括号内容,{R:2}对应<match>里的url的第二个括号内容,如果有{R:3}{R:4},如此类推。

所以,如果假如用户访问的网址是

http://tony.8952.com/t/123
http://tony.8952.com/news/t/a1

那么,其对应的实际网址是

http://tony.8952.com/list.asp?id=123
http://tony.8952.com/news/list.asp?id=a1

提示4、按照上面的解释,你应该差不多能读懂实例的rule2重写规则了。

$,这是个结束符,表示匹配的url到此结束,后面没有其他字符了。

([0-9]+) 表示匹配任何数字。

\.html 表示匹配 .html

\?表示匹配一个问号?

特别要注意,反斜杠\是转义符,因为正则表达式里,一点.是表示匹配任何字符的意思,所以要加上反斜杠对其转义,这样才表示匹配的是一个点.

同样地,问号?也是一个元符号,它表示匹配前面的子表达式零次或一次,因此,也需要在其前面加上转义符\,这才表示匹配的是一个问号?

提示5、其他

ignoreCase="false" 表示不能忽略大小写,如果该值设为true,则表示忽略大小写。

appendQueryString="false" 表示不使用url参数。

 MR虚拟直播

无延迟直播

视频加密与安全

在线导播台

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值