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

飘逸的风13年前 (2013-07-16)经验10008

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

第一种方法: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>

这两种方法也许不是最好的,但却是很实用。如果各位网友有更好的IIS7.5伪静态方法,可以在下面留言,好资源大家分享嘛!

 

相关文章

关于经验分享栏目

  以前做过很多项目,小到一个留言板,大到综合门户站,基本上的网站都接触过。个人单独开发过,多人团队也一起开发过。总的来说,从2008年工作到现在,也积累了不少经验。接下来,我会将我做过的比较满意的项...

53种方法可以提高PHP的编程效率

用单引号代替双引号来包含字符串,这样做会更快一些。因为PHP会在双引号包围的字符串中搜寻变量,单引号则不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的“函数”(译注:PHP手册中说...

禁止网站被别人通过iframe引用

如题,解决方案如下: 解决方案一:js方法 这种方法不可靠,不推荐使用 <script type="text/javascript"> if(self != top)...

阿里云盘内测期间如何使用,申请并获得激活码?激活码分享!

阿里云盘内测期间如何使用,申请并获得激活码?激活码分享!

最近大家一定被阿里的两个网盘刷屏:阿里云网盘和teambition网盘。阿里云网盘注重的是个人用户,而teambition网盘,主要是企业或者多人协作。 目前这两款网盘...

阿里云盘和Teambition网盘到底有什么区别?

阿里云盘和Teambition网盘到底有什么区别?

阿里云盘和阿里云teambition网盘有什么区别?有很多人问这二个产品到底有什么区别?其实,这两款网盘主要在于定位和应用场景不同:Teambition定位是企业团队,阿里云盘定位是个人,可以根...

阿里云盘公测限时可以最多免费领取3倍存储容量啦!

阿里云盘公测限时可以最多免费领取3倍存储容量啦!

阿里云盘即将进行公测,现在开始到3月17日18点,可以在阿里云盘官网提前预约公测,可以免费领取最高3被存储容量,也就是说,最多可以领取阿里云盘3T容量,已经在使用的...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。