当前位置 主页 > 服务器问题 > win服务器问题汇总 >

    IIS7.5使用web.config设置伪静态的二种方法

    栏目:win服务器问题汇总 时间:2019-03-15 09:15

    IIS7.5使用web.config设置伪静态方法

    近几天公司里开发的项目有几个运行在IIS7.5上,由于全站采用的是伪静态,因此从网上找到两两种方法来实现。这两种方法各有优势:第一种比较灵活,只要把文件拷到根目录下,即可直接显示所有伪静态页面(适用于此伪静态规则的所有项目,如ThinkPHP),无需更改代码;第二种适合有子目录时的伪静态,比如一个网站下有多个子网站且都要使用伪静态,那么就考虑使用第二种方法了,第一种会报错误。两种方法,自己根据情况使用吧(当然,并不是适用所有项目,可以根据项目的伪静态规则自行调整)。以下是代码:

    第一种方法:web.config
    复制代码 代码如下:
    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
        <system.webServer>
     <rewrite>
      <rules>
      <rule name="OrgPage" stopProcessing="true">
      <match url="^(.*)$" />
      <conditions logicalGrouping="MatchAll">
      <add input="{HTTP_HOST}" pattern="^(.*)$" />
      <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
      <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
      </conditions>
      <action type="Rewrite" url="index.php/{R:1}" />
      </rule>
      </rules>
     </rewrite>
        </system.webServer>
    </configuration>

    第二种方法:web.config
    复制代码 代码如下:
    <?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">