我正在嘗試使用正則運算式將包含/page/ 和 ?lang=xx 或 &lang=xx的查詢重定向到主頁。
這是我到目前為止所嘗試的,規則的第一部分有效,但不是第一個問號后面帶有?lang=and的部分。&lang=
RewriteRule ^page/([0-9] )/?(\?|&)lang=([a-z]{2})$ https://example.com [R=301,L]
任何幫助將不勝感激。
uj5u.com熱心網友回復:
RewriteRule ^page/([0-9] )/?(\?|&)lang=([a-z]{2})$ https://example.com [R=301,L]
該RewriteRule指令僅與 URL 路徑匹配。要匹配查詢字串,您需要匹配QUERY_STRING前面條件中的服務器變數。例如:
RewriteCond %{QUERY_STRING} (^|&)lang=[a-z]{2}(&|$)
RewriteRule ^page/\d /?$ https://example.com/ [R=301,L]
您沒有說明您嘗試匹配的實際 URL,因此根據您的規則,這將匹配表單的 URL /page/<number>/,其中尾部斜杠是可選的。此外,langURL 引數必須出現在查詢字串中的任何位置,并且其值必須是兩個字母。如果langURL 引數存在,但為空或包含兩個以上的字母,則它將不匹配并且不會發生重定向。
\d是與 相同的速記字符類[0-9]。您在原始規則中擁有的捕獲子組不是必需的。
首先使用 302(臨時)重定向進行測驗,以避免潛在的快取問題。確保在測驗之前清除瀏覽器快取。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/527605.html
