IIS7.5使用web.config设置伪静态的二种方法(转)
2016-07-31 11:27
603 查看
近几天公司里开发的项目有几个运行在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伪静态规则,于是我们这里整理一份,供初次使用的朋友参考。
实现普通页面、带一个数字参数页面和带两个参数页面的伪静态!
?
IIS 7.5通过web.config实现301重定向的方法,将不带www的域名转向到带www的域名上!
?
由于我们的网站使用了转义字符,因此在实际使用的时候,大家不可以直接复制以上代码。请复制粘贴到Dreamweaver等编辑器后,使用替换功能把双引号全部替换为英文状态下的双引号,然后再修改rule标签内的内容就可以了,跳转的地方请更改为自己的网址即可。
需要注意的地方是以前httpd.ini和.htaccess支持网址中两个参数用&符号链接,在web.config中是不支持的,需要将这个符号更改为&才能正常使用。由于我们目前只有一台这种类型的服务器使用经验,有可能存在不足,如有更多更全面的资料,欢迎交流学习!
第一种方法: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伪静态规则,于是我们这里整理一份,供初次使用的朋友参考。
实现普通页面、带一个数字参数页面和带两个参数页面的伪静态!
?
?
需要注意的地方是以前httpd.ini和.htaccess支持网址中两个参数用&符号链接,在web.config中是不支持的,需要将这个符号更改为&才能正常使用。由于我们目前只有一台这种类型的服务器使用经验,有可能存在不足,如有更多更全面的资料,欢迎交流学习!
相关文章推荐
- IIS7.5使用web.config设置伪静态的二种方法
- IIS7.5使用web.config设置伪静态的方法
- 【视频】自然框架之分页控件的使用方法(二) 下载、DLL说明和web.config的设置
- 【视频】自然框架之分页控件的使用方法(二) 下载、DLL说明和web.config的设置
- [强烈推荐] thinkphp iis7.5 win2008 上 设置虚拟静态 错误的解决方法 web.config
- Webconfig中使用appSettings设置连接字符串(转)
- Web.config中常用语句的使用方法和调用方法:
- 使用web.config中设置连接串
- [转]ASP.NET Web.config配置文件的基本使用方法
- web.config文件自定义配置节的使用方法
- web.config文件自定义配置节的使用方法的一个简单例子
- webconfig文件中设置上传文件的大小实现方法
- 再谈web.config/app.config敏感数据加/解密的二种方法
- web.config文件自定义配置节的使用方法的一个简单例子
- vs.net console 使用 web.config 连接数据库的方法
- Webconfig中使用appSettings设置连接字符串(转)
- 使用Web方式编辑web.config文件的方法
- web.config文件自定义配置节的使用方法
- ASP.NET Web.config配置文件的基本使用方法
- ASP.Net中设置web.config文件上传大文件方法