Azure Web 应用程序上的 Wordpress 站点重定向到 404 错误页面
Wordpress site on azure web app redirect to 404 error page
我在 Azure 网络应用程序中托管了一个基于 wordpress 的互联网站点。
如果我在 URL 的“/”后面输入各种字符串(例如:"www.blabla.net/asdfasdf"),我将被重定向到我配置的 404 错误页面。 BUT: 如果 URL 字符串包含一个或多个“+”字符(例如:"www.blabla.net/as+asdf" 或只是 "www.blabla.net/+"),则重定向到配置的 404 错误页面不起作用,我被重定向到包含以下文本的页面:
The resource you are looking for has been removed, had its name changed, or is temporarily unavailable.
我在 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 错误页面?
提前致谢!
出于安全原因,自 IIS 7 起,包含双重转义序列的 URL 请求将被过滤模块拒绝。这就是为什么当您输入“+”时会得到 404.11 响应代码的原因字符变成了URL。详情可参考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>
我在 Azure 网络应用程序中托管了一个基于 wordpress 的互联网站点。
如果我在 URL 的“/”后面输入各种字符串(例如:"www.blabla.net/asdfasdf"),我将被重定向到我配置的 404 错误页面。 BUT: 如果 URL 字符串包含一个或多个“+”字符(例如:"www.blabla.net/as+asdf" 或只是 "www.blabla.net/+"),则重定向到配置的 404 错误页面不起作用,我被重定向到包含以下文本的页面:
The resource you are looking for has been removed, had its name changed, or is temporarily unavailable.
我在 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 错误页面?
提前致谢!
出于安全原因,自 IIS 7 起,包含双重转义序列的 URL 请求将被过滤模块拒绝。这就是为什么当您输入“+”时会得到 404.11 响应代码的原因字符变成了URL。详情可参考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>