在天蓝色的网络应用程序上的Wordpress网站重定向到404错误页面
问题描述:
我有一个基于WordPress的网站托管在Azure网络应用程序内。在天蓝色的网络应用程序上的Wordpress网站重定向到404错误页面
如果我在URL的“/”后面输入各种字符串(例如:“www.blabla.net/asdfasdf”),我会重定向到配置的404错误页面。 但是:如果URL字符串包含一个或多个“+”字符(例如:“www.blabla.net/as+asdf”或只是“www.blabla.net/+”),则重定向到配置的404错误页面不起作用,我将重定向到包含以下文本的页面:
您正在查找的资源已被删除,名称已更改或暂时不可用。在IIS 8
我的“web.config”文件是这样的:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="WordPress: http://blabla.net" patternSyntax="Wildcard">
<match url="*"/>
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true"/>
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true"/>
</conditions>
<action type="Redirect" url="index.php"/>
</rule></rules>
</rewrite>
</system.webServer>
</configuration>
我会很感激,如果你能给我任何暗示如何配置web.config文件中这样一种将“+”字符视为其他各种字符并将重定向执行到配置的404错误页面的方式?
预先感谢您!
答
由于安全原因,包含双转义序列的URL请求将被自IIS 7以来的过滤模块拒绝。这就是为什么当您向URL中添加“+”字符时,您已获得404.11响应代码。详情请参阅this post。
如果你坚持让一个带有“+”字符的URL工作,你可以使用下面列出的web.config
文件。然后,www.blabla.net/as+asdf
或www.blabla.net/+
将被重定向到配置的404错误页面,但请记住,这可能会以某种方式降低您网站的安全级别。
<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
<system.webServer>
<security>
<requestFiltering allowDoubleEscaping="true" />
</security>
<rewrite>
<rules>
<rule name="WordPress: http://blabla.net" patternSyntax="Wildcard">
<match url="*" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Redirect" url="index.php" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
Aaron Chen:非常感谢您的快速响应!它现在按预期工作! – Degoah