Dot-Htaccess

當url在htaccess中包含問號時如何強制rerection?

  • October 13, 2019

我有一個網址:

www.example.com/PageName:ArgumentValue1,ArgumentValue2

我想重定向到

www.example.com/apex/f?p=alias:PageName:ArgumentValue1,ArgumentValue2

到目前為止我已經做了:

RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule (.*)$ ./apex/f?p=alias:$1 [L]

重定向正常工作,除非 anArgumentvalue有問號。

即使參數中有問號,是否有任何方法可以強制進行這種重定向?

PageName,ArgumentValue1並且ArgumentValue2都是動態變數。

www.example.com/PageName:ArgumentValue1,ArgumentValue2

由於ArgumentValues是 URL 路徑的一部分,因此任何文字 ?(問號)都應按照%3F請求中的 URL 編碼。否則,未編碼?表示查詢字元串的開始,並有效地將 URL 分成兩部分——這就是這裡發生的情況。

作為一種解決方法,您可以改為執行以下操作:

RewriteCond %{THE_REQUEST} "^GET /([^\s]+)"
RewriteRule ^[^:]+: apex/f?p=alias:%1 [L]

引用自:https://serverfault.com/questions/987334