我正在嘗試做以下事情:
轉換網址:https://example.com/human/?system=jitsi&action=SYSTEM
到:https://new.example/?action=SYSTEM&system=jitsi
RewriteEngine On
RewriteCond %{REQUEST_METHOD} GET
RewriteCond "%{QUERY_STRING}" action=(. )
RewriteRule / https://new.example/?action=SYSTEM&system=%1?
不幸的是,我無法得到預期的結果。
uj5u.com熱心網友回復:
您的規則有幾個問題:
human/您與嘗試洗掉的 URL 路徑中的不匹配。- 您的條件和規則都沒有用于“開始于”(
^)或“結束于”($)的正則運算式標記,這意味著它們匹配子字串而不是完整字串。 - 您的規則以斜杠開頭,這意味著它不能在 中使用
.htaccess,只能在 Apache 的 conf 檔案中使用。我建議使用可選的斜杠開始規則,/?以便它們可以在任何一種背景關系中使用。 - 您的查詢字串條件僅匹配您說需要存在以進行重定向的兩個引數之一。
(. )在您的查詢字串條件可以匹配太多。它將包括由 & 號 (&) 分隔的其他引數。這應該改為([^&] )意思是“至少一個字符不包括 & 號”?您的目標 URL 末尾有一個額外的雜散點,該雜散點將被解釋為system引數值的一部分。- 您沒有明確指定重定向 (
[R]) 或最后 ([L]) 的標志,這是包含的最佳實踐。
RewriteEngine On
RewriteCond %{REQUEST_METHOD} GET
RewriteCond %{QUERY_STRING} ^system=([^&] )&action=([^&] )$
RewriteRule ^/?human/$ https://new.example/?action=%2&system=%1 [R,L]
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/475945.html
