【问题标题】:Wordpress site on azure web app redirect to 404 error pageazure web 应用程序上的 Wordpress 站点重定向到 404 错误页面
【发布时间】:2017-11-16 23:00:33
【问题描述】:

我有一个托管在 Azure Web 应用程序中的基于 wordpress 的 Internet 站点。

如果我在我的 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 错误页面,我将不胜感激?

提前谢谢你!

【问题讨论】:

    标签: php wordpress azure redirect web-config


    【解决方案1】:

    出于安全原因,自 IIS 7 起,过滤模块将拒绝包含双转义序列的 URL 请求。这就是为什么当您在 URL 中输入“+”字符时会得到 404.11 响应代码的原因。详情可参考this post

    如果您坚持使用带有“+”字符的 URL,您可以使用下面列出的 web.config 文件。然后www.blabla.net/as+asdfwww.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:非常感谢您的快速响应!它现在按预期工作!
    猜你喜欢
    • 2015-04-17
    • 1970-01-01
    • 2014-01-13
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-27
    相关资源
    最近更新 更多