IIS7.5设置伪静态的误区-小白少走点弯路
日期:2018-11-16 浏览

以前用的是apache,现在用的IIS,突然发现伪静态嗝屁了,咋整,百度了很多高手大拿的文章,但是总的来说没啥用处,因为这些人写的还不够仔细。今天我自己的修改记录做个总结。

最主要的还是要修改大永川人才网dycrc.com 网站根目录下的web.config文件。因为IIS上的所有更改都会再写入网站根目录这个文件。什么httpd.ini都是扯淡可以不要了。扔了就行。

首先你必须下载IIS官方url重新组建,微软官方有,下载速度快,也不用你操心,适合所有版本的winserver,下载下来也很傻瓜,直接安装,下一步下一步就好看,知道最后提示成功。然后打开IIS你会发现多了个url重写,这个也就是伪静态。

直接双击进去,在界面的右侧有导入规则选项。

举个例子。导入如下规则。下面的规则是apache上用的。

[ISAPI_Rewrite]
# 3600 = 1 hour
CacheClockRate 3600
RepeatLimit 32
RewriteRule .*.(?:gif|jpg|png|css|js|txt|jpeg|swf|flv) $0 [I,L]
RewriteRule /httpd(?:.ini|.parse.errors) / [F,I,O]
RewriteCond %{REQUEST_FILENAME} !-f
rewrite ^([^.]*)/index.htm$ $1index.php last;
RewriteRule ^jobs/jobs-show-([0-9]+).htm$ jobs/jobs-show.php?id=$1
RewriteRule ^company/company-show-([0-9]+).htm$ company/company-show.php?id=$1

上面的代码 rewriterule 上面的所有都可以去掉,因为再导入后,系统就会提示你这些行是错误的,所以拿到apache伪静态,就可以直接留下rewriterule开头的行,其他统统删除,然后直接导入。成功导入,但是还是不能访问,提示错误,因为规则是错的。

这个时候就可以去网站根目录下的web.config里面做下修改。

                <rule name="已导入的规则 1">
                    <match url="^index.htm$" ignoreCase="false" />
                    <action type="Rewrite" url="index.php" />
                </rule>
                <rule name="已导入的规则 2">
                    <match url="^jobs/jobs-show-([0-9]+).htm$" ignoreCase="false" />
                    <action type="Rewrite" url="jobs/jobs-show.php?id={R:1}" appendQueryString="false" />
                </rule>

以上面的微粒子,可以看到静态的前面有符号,尾部有刀了号,这样的是正确的,但是<action type="Rewrite" url="index.php" />这个就需要改成<action type="Rewrite" url="/index.php" /> 绝对路径就可以了。其他的需要伪静态的页面也是同样的。把他修改为这样的格式就OK。

剩下的就是重启下IIS 完整的伪静态就配置完成,不得不说配置个伪静态也这么麻烦,

相对于2003来说2008已经很好了。301都直接填写网址OK了,以前还有这哪的代码符号。希望此文能帮到大家。有问题可以咨询我,网站首页有联系方式的。