我有一些URL可以輸入或不帶尾部斜線。他們被用作虛榮網址。mod_alias重定向添加兩個尾部斜線
的.htaccess看起來像這樣:
Redirect 301 /folder/vanity1 http://example.com/differentfolder/
Redirect 301 /folder/vanity2 http://example.com/a/third/folder/
Redirect 301 /vanity3 http://example.com/fourth/folder/
用戶鍵入:
http://example.com/folder/vanity1
http://example.com/folder/vanity2
http://example.com/vanity3
http://example.com/folder/vanity1/
http://example.com/folder/vanity2/
http://example.com/vanity3/
當用戶在一個沒有結尾的斜線鍵入這些,重定向工作正常,結束了在http://example.com/differentfolder/
根據需要帶有一個尾部斜線。
問題:
當用戶在以斜線鍵入這些,如http:/example.com/folder/vanity1/
它們重定向到URL具有兩個縱斜線,如http://example.com/differentfolder//
會拋出404錯誤。
我曾嘗試:
- 從的.htaccess刪除所有其他行,除了這三個個性化網址和保持網站運作所需標準的WordPress塊。 WordPress的塊出現在文件的末尾:
# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase/ RewriteRule ^index.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress
我檢查不僅與我的瀏覽器,但與WebConfs HTTP報頭校驗,以確保我沒有看到一個緩存規則。還是一樣,如果你輸入一個沒有結尾斜槓的虛榮URL,它就可以工作;如果用一個結尾的斜線鍵入它,它重定向到兩個縱斜線這引起404
- 添加在我的規則尾隨斜線:
Redirect 301 /folder/vanity1/ http://example.com/differentfolder/
如果用戶鍵入結尾的斜槓,但是如果它們沒有斜槓,它將不會重定向,因爲URL http://example.com/folder/vanity1/
實際上並不存在,所以它可以正常工作。
問:
是否有不同的方式,以301重定向的個性化網址到最終目標只有一個斜線,無論哪種方式訪客類型的個性化網址 - 有或沒有尾隨削減?超越匹配的URL路徑
** ^文件夾**應該是**^/文件夾**,因爲RedirectMatch使用絕對路徑。 – starkeen
太棒了,謝謝你澄清並提供兩個選項。比另一個更有效率嗎? – WebElaine
@starkeen謝謝你接受這個,修正:-) –