动态 版块 发帖 消息 我的
Loading...
HuPei.net
商•龙虎纹青铜尊及其虎食人纹局部,战国•玉螭虎食人佩!
hupei
虎佩中国Lv18   
利用web.config实现伪静态(IIS7.0以上,无法通过.htaccess实现伪静态)     软件,编程,开发,运维
本人的虚拟主机为WindowsNT+IIS7.5,不支持Aache伪静态规则,无法通过HADSKY程序自带的.htaccess文件实现伪静态,在网上搜索,发现IIS7以上只能通过web.config文件实现伪静态,需要将.htaccess规则转变成web.config规则,根据HADSKY程序自带的.htaccess文件,修改制作了web.config文件,将下列代码复制到TXT文本中,另存为web.config文件,上传到网站根目录,将网站根目录的.htaccess删除(如果根目录有httpd.ini文件,也一并删除),然后到网站后台打开伪静态开关即可。需要注意的是,无论自带的.htaccess规则还是web.config规则,都只针对游客有效,会员登陆后是看不出来伪静态的,需要会员退出登录后刷新,就可看出是伪静态了。

.htaccess

代码如下(也可下载云附件的文件,解压后直接上传到网站根目录):

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
	<rewrite>
<rules>
<rule name="index">
	<match url="^index\.html$"  />
	<action type="Rewrite" url="/index.php"  />
</rule>
<rule name="rule 1J">
	<match url="^list-([0-9]+)-([0-9]+)\.html$"  />
	<action type="Rewrite" url="/index.php?c=list&amp;sortid={R:1}&amp;page={R:2}&amp;%1"  />
</rule>
<rule name="rule 2J">
	<match url="^list-high-([0-9]+)-([0-9]+)\.html$"  />
	<action type="Rewrite" url="/index.php?c=list&amp;type=high&amp;sortid={R:1}&amp;page={R:2}&amp;%1"  />
</rule>
<rule name="rule 3J">
	<match url="^user-([0-9]+).html$"  />
	<action type="Rewrite" url="/index.php?c=user&amp;id={R:1}&amp;%1"  />
</rule>
<rule name="rule 4J">
	<match url="^forum-([0-9]+).html$"  />
	<action type="Rewrite" url="/index.php?c=forum&amp;id={R:1}&amp;%1"  />
</rule>
<rule name="rule 5J">
	<match url="^user-([0-9]+)-([0-9]+).html$"  />
	<action type="Rewrite" url="/index.php?c=user&amp;id={R:1}&amp;page={R:2}&amp;%1"  />
</rule>
<rule name="rule 6J">
	<match url="^app-([0-9a-zA-Z_]+)-([0-9a-zA-Z_]+)\.html$"  />
	<action type="Rewrite" url="/index.php?c=app&amp;a={R:1}:{R:2}&amp;%1"  />
</rule>
<rule name="rule 7J">
	<match url="^read-([0-9]+)-([0-9]+)\.html$"  />
	<action type="Rewrite" url="/index.php?c=read&amp;id={R:1}&amp;page={R:2}&amp;%1"  />
</rule>
<rule name="rule 8J">
	<match url="^([0-9a-zA-Z_]+)\.html$"  />
	<action type="Rewrite" url="/index.php?c={R:1}&amp;%1"  />
</rule>
</rules>
</rewrite>
    </system.webServer>
</configuration>

web.config.zip

管理员添加:

上述方法若无法成功设置请删掉以下规则:

  <handlers>
            <remove name="PHP-5.6-7i24.com" />
            <remove name="PHP-5.5-7i24.com" />
            <remove name="PHP-5.4-7i24.com" />
            <remove name="PHP-5.3-7i24.com" />
            <remove name="PHP-5.2-7i24.com" />
            <add name="PHP-5.4-7i24.com" path="*.php" verb="*" modules="FastCgiModule" scriptProcessor="c:\php\5.4\php-cgi.exe" resourceType="Either" />
        </handlers>

然后再进行尝试。


我补充一个IIS的web.config配置说明。

这个说明是我的网站 ,实现404自定义页面跳转的配置代码。因为我的空间不能实现空间管理后台自定义404,这个配置解决了这个问题。将以下代码加入web.config后,站测可以。

<httpErrors errorMode="DetailedLocalOnly">
            <remove statusCode="404" subStatusCode="-1" />
            <error statusCode="404" subStatusCode="-1" path="/404.htm" responseMode="ExecuteURL" />
</httpErrors>


能通过.htaccess和httpd.ini文件实现伪静的就没必要再弄这个了,通过.htaccess和httpd.ini文件无法实现伪静态,且是Windows+IIS7.0以上的可以尝试下通过这个实现伪静态,我的网站就是这么实现的,可以参考下。

 1  已被阅读了968次  楼主 2018-10-30 11:10:25
回复列表

回复:利用web.config实现伪静态(IIS7.0以上,无法通过.htaccess实现伪静态)

Powered by 虎佩中国
© 2012-2023 HuPei.net
您的IP:3.235.147.50,2023-06-10 23:33:44,Processed in 0.01483 second(s).
Powered by HuPei.net
免责声明:本站内容均来自网络,如有侵权请联系站长删除,一切后果概不负责!