[英].htaccess redirect still goes to 404
我的.htaccess文件中進行了以下重寫,它仍在404上而不是重定向。
RewriteCond %{QUERY_STRING} tab=auto_data(.*)$
RewriteRule ^(.*)$ https://test.example.com/automobile-data/ [L,R=301]
有多個頁面可能具有tab=auto_data
查詢字符串參數,並且很有可能在tab=auto_data
后面附加了其他QSP。
我需要將包含tab=auto_data
的QSP的所有URL重定向到站點中的新頁面。 域將保持不變,只是頁面名稱正在更改。
我在這里做錯了什么?
唯一的其他指令是標准WordPress指令。
在這種情況下,您的外部重定向應該在任何WordPress路由指令之前 。 RewriteEngine
指令僅需要在文件中的任何位置出現一次。 盡管如果它在頂部出現一次顯然更合乎邏輯。
您還需要從替換中刪除查詢字符串,否則,由於域相同,您將獲得重定向循環。 如果域/主機保持相同,則可以從替換中省略。
請嘗試以下操作:
RewriteCond %{QUERY_STRING} tab=auto_data
RewriteRule ^polk/$ /automobile-data/? [R=301,L]
專門匹配URL路徑/polk/
(如注釋中所述),除非需要更通用? 並且tab=auto_data
必須與查詢字符串中的任何位置匹配。
?
在替換的末尾刪除查詢字符串,從而防止重定向循環。 (大概應該從目標中刪除查詢字符串嗎?)盡管由於源URL和目標URL路徑不同,所以不再嚴格必須這樣做。
如果“域保持相同”,則沒有特別需要在替換中包括方案和主機。 除非您托管多個域等?
在進行測試之前,請確保已清除瀏覽器緩存,因為眾所周知301是用於緩存的。 因此,最好使用302s進行測試。
更新:要專門刪除此查詢字符串參數,但將其余查詢字符串復制到目標,請嘗試以下操作:
RewriteCond %{QUERY_STRING} ^tab=auto_data(?:&(.+))?
RewriteRule ^polk/$ /automobile-data/?%1 [R=301,L]
(?:&(.+))?
-捕獲所有剩余的查詢字符串(如果有),但從捕獲的組中排除&
前綴(參數定界符)。 %1
是對此捕獲組的反向引用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.