zoukankan      html  css  js  c++  java
  • 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">
                        <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>

    下面是补充:

    IIS 7和IIS 7.5及以后的版本估计都会使用web.config来实现伪静态规则,于是我们以前的伪静态文件必须更改。网上找了一圈,还没有发现比较全面的web.config伪静态规则,于是我们这里整理一份,供初次使用的朋友参考。

    实现普通页面、带一个数字参数页面和带两个参数页面的伪静态!

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
    <system.webServer>
    <rewrite>
    <rules>
     
    <rule name="Index" stopProcessing="true">
    <match url="^index.html" />
    <action type="Rewrite" url="index.php" />
    </rule>
     
    <rule name="Rule1" stopProcessing="true">
    <match url="^news_([0-9]+).html" />
    <action type="Rewrite" url="news.php?nid={R:1}" />
    </rule>
       
    <rule name="Rule2" stopProcessing="true">
    <match url="news_list_([0-9]+)_([0-9]+).html" />
    <action type="Rewrite" url="news_list.php?nid={R:1}&page={R:2}" />
    </rule>
     
    </rules>
    </rewrite>
    </system.webServer>
    </configuration>

    IIS 7.5通过web.config实现301重定向的方法,将不带www的域名转向到带www的域名上!

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
    <system.webServer>
    <rewrite>
    <rules>
     
    <rule name="Redirect" stopProcessing="true">
    <match url=".*" />
    <conditions>
    <add input="{HTTP_HOST}" pattern="^chuangluo.com$" />
    </conditions>
    <action type="Redirect" url="http://www.chuangluo.com/{R:0}" redirectType="Permanent" />
    </rule>
     
    </rules>
    </rewrite>
    </system.webServer>
    </configuration>

    由于我们的网站使用了转义字符,因此在实际使用的时候,大家不可以直接复制以上代码。请复制粘贴到Dreamweaver等编辑器后,使用替换功能把双引号全部替换为英文状态下的双引号,然后再修改rule标签内的内容就可以了,跳转的地方请更改为自己的网址即可。

    需要注意的地方是以前httpd.ini和.htaccess支持网址中两个参数用&符号链接,在web.config中是不支持的,需要将这个符号更改为&才能正常使用。由于我们目前只有一台这种类型的服务器使用经验,有可能存在不足,如有更多更全面的资料,欢迎交流学习!

  • 相关阅读:
    UEFI和GPT
    EFI/UEFI BIOS 入门
    UEFI+GPT模式下的Windows系统中分区结构和默认分区大小及硬盘整数分区研究
    UEFI和Legacy及UEFI+Legacy启动的区别
    UEFI与MBR区别
    UI基础字典转模型
    UI基础九宫格
    UI基础UIView常见属性及方法
    UI基础控件UIButton
    OC中NSFileManager类 和 copy一些用法
  • 原文地址:https://www.cnblogs.com/xcsn/p/5722655.html
Copyright © 2011-2022 走看看