2017-06-14 35 views
0

我有一個基於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錯誤頁面的方式?

預先感謝您!

回答

0

由於安全原因,包含雙轉義序列的URL請求將被自IIS 7以來的過濾模塊拒絕。這就是爲什麼當您向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> 
+0

Aaron Chen:非常感謝您的快速響應!它現在按預期工作! – Degoah

相關問題