2008+iis7+php环境中碰以的问题,找了很多的教程都没得己解决,下面一起来看看吧
解决方法有两种,一种是在system32中修改applicationhost.config,另一种是在web.config中增加几行代码,具体如下。
1.
在网站根目录修改web.config
在站点根目录找到web.config
文件,
找到节点,添加
。
代码效果如下:
代码如下
<configuration>
<system.webServer>
<security>
<requestFiltering
allowDoubleEscaping="true"></requestFiltering>
</security>
</system.webServer>
</configuration>
2.
在修改applicationhost.config
在
ApplicationHost.config
文件,
定位到文件中的
configuration/system.webServer/security/requestFiltering/下
节点。大约360行将
改为
即可
代码如下
<configuration>
<system.webServer>
<security>
<requestFiltering
allowDoubleEscaping="true"></requestFiltering>
</security>
</system.webServer>
</configuration>
上面两种方法第一种是当前站点了,第二种是所有站点,小编推荐使用第一种方法,这样会安全一亲了。
iis7.5配置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伪静态规则,于是我们这里整理一份,供初次使用的朋友参考。
实现普通页面、带一个数字参数页面和带两个参数页面的伪静态!
<?xml version="1.0" encoding="UTF-8"?><configuration><system.webServer><rewrite><rules> <rule name="Index" stopProcessing="true"><match url="^index.html" /><action type="Rewrite" url="index.php" /></rule> <rule name="Rule1" stopProcessing="true"><match url="^news_([0-9]+).html" /><action type="Rewrite" url="news.php?nid={R:1}" /></rule><rule name="Rule2" stopProcessing="true"><match url="news_list_([0-9]+)_([0-9]+).html" /><action type="Rewrite" url="news_list.php?nid={R:1}&page={R:2}" /></rule> </rules></rewrite></system.webServer></configuration>
IIS 7.5通过web.config实现301重定向的方法,将不带www的域名转向到带www的域名上!
<?xml version="1.0" encoding="UTF-8"?><configuration><system.webServer><rewrite><rules> <rule name="Redirect" stopProcessing="true"><match url=".*" /><conditions><add input="{HTTP_HOST}" pattern="^chuangluo.com$" /></conditions><action type="Redirect" url="http://www.chuangluo.com/{R:0}" redirectType="Permanent" /></rule> </rules></rewrite></system.webServer></configuration>
由于网站使用了转义字符,因此在实际使用的时候,大家不可以直接复制以上代码。请复制粘贴到Dreamweaver等编辑器后,使用替换功能把双引号全部替换为英文状态下的双引号,然后再修改rule标签内的内容就可以了,跳转的地方请更改为自己的网址即可。
需要注意的地方是以前httpd.ini和.htaccess支持网址中两个参数用&符号链接,在web.config中是不支持的,需要将这个符号更改为&才能正常使用。
正确设置的步骤:步骤一:
ISS中404错误页面设置
打开IIS管理器-->点击要设置自定义404的网站的属性-->点击自定义错误选项-->选中404页-->选中并打开编辑属性-->设置成文件或默认值-->URL 里填写“/404.html”,按确定退出。再把做好的404.html页面上传到网站根目录下。此处在“消息类型”中一定要选择“文件”或“默认值”,而不要选择“URL”,不然,将导致返回“200”状态码。
步骤二:
Apache下设置404错误页面很简单,一般都是有一个404错误页面设置的功能,只需要自己做好一个404页面,上传到对应的目录就可以了。
步骤三:
一些主机的空间默认就是返回值320或200状态码,怎么办呢?我们可以通过下面的代码来解决:
ApacheServer下设置404错误页面
建立一个.htaccess 文件,在其中加入如下内容:ErrorDocument 404/notfound.php,然后将.htaccess文件上传到网站根目录,最后制作一个404页面,命名为notfound.php,和上面的名字一定要统一,同样上传到网站根目录就OK了。这里切记不要使用绝对URL,如果使用绝对URL返回的状态码是302或200了。
IIS/asp。net下设置404错误页面
首先,修改应用程序根目录的设置,打开 web.config 文件,引用以下内容:
1
2
3
4
5
6
7
<configuration>
<system.web>
<customErrors mode=OndefaultRedirect=error.asp>
<error statusCode=404″ redirect=notfound.asp/>
</customErrors>
</system.web>
</configuration>
error.asp为系统默认的404页面名,notfound.asp为自定义的404页面,使用时请修改相应文件名。
然后,在自定义的404页面notfound.asp中加入以下代码,便可以保证IIS服务器能够正确地返回404状态码。
1
2
<% Response.Status
= 404 Not Found%>
总而言之,网站的404页面一定要设置好,如果说返回的是200状态码那就是自找麻烦,不如不做。木木seo建议404页面设置完成后,一定要检查是否正确,返回的一定要是404状态,如果你网站因为产生较多200码404页面而导致降权,那是非常悲剧的。
另外我们在制作404页面的时候也要注意页面的美观和体验,尽量不要自动跳转也不要仅仅显示此页面无法访问,404页面也需要有清晰的导航,让用户来决定去向,这样才能留住用户。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)