簡體   English   中英

.htaccess重定向仍轉到404

[英].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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM