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

cnhbzx 互帮自学 关注 五级站长 普通
发表于SEO相关版块
本人的虚拟主机为WindowsNT+IIS7.5,不支持Apache伪静态规则,无法通过HADSKY程序自带的.htaccess文件实现伪静态,在网上搜索,发现IIS7以上只能通过web.config文件实现伪静态,需要将.htaccess规则转变成web.config规则,根据HADSKY程序自带的.htaccess文件,修改制作了web.config文件,将下列代码复制到TXT文本中,另存为web.config文件,上传到网站根目录,将网站根目录的.htaccess删除(如果根目录有httpd.ini文件,也一并删除),然后到网站后台打开伪静态开关即可。需要注意的是,无论自带的.htaccess规则还是web.config规则,都只针对游客有效,会员登陆后是看不出来伪静态的,需要会员退出登录后刷新,就可看出是伪静态了。代码如下(也可下载云附件的文件,解压后直接上传到网站根目录):

<?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>
1269_20161229093624.zip(云文件:0KB)



管理员添加:

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

        <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>
然后再进行尝试。

评论列表 评论
a351602394 虾米 五级站长 VIP 7#
 <rule name="rule 9J">
       <match url="^htmlpage-([0-9a-zA-Z_]+)\.html$"  />
       <action type="Rewrite" url="index.php?c=app&a=puyuetian_htmlpage:index&htmlname={R:1}&amp;%1"  />

广东,佛山

共0条回复,点击查看回复
zs163 张帅 五级站长 VIP 6#
我的通过您的方法试了,显示的是这个

Image

共0条回复,点击查看回复
wudianjiu wudianjiu 一级站长 普通 5#

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

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


<httpErrors errorMode="DetailedLocalOnly">

            <remove statusCode="404" subStatusCode="-1" />

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

</httpErrors>

共0条回复,点击查看回复

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

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


<httpErrors errorMode="DetailedLocalOnly">

            <remove statusCode="404" subStatusCode="-1" />

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

</httpErrors>

共0条回复,点击查看回复
puyuetian 乐天 九级站长 创始人 3#
不错,奖励100豆豆

环保战线:
有豆豆真不错(ˉ﹃ˉ)

共0条回复,点击查看回复
cnhbzx 互帮自学 五级站长 普通 2#
能通过.htaccess和httpd.ini文件实现伪静的就没必要再弄这个了,通过.htaccess和httpd.ini文件无法实现伪静态,且是Windows+IIS7.0以上的可以尝试下通过这个实现伪静态,我的网站就是这么实现的,可以参考下,我个人资料中签名里有我的网站地址。

xq88:
你好,用你的这个方式实现了帖子伪静态,但是主页等项目和板块等没有伪静态,请问怎么搞?

共0条回复,点击查看回复
发布评论

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

已有0次打赏
(11) 分享
分享

请保存二维码或复制链接进行分享

取消