Apache-2.2
Apache MatchRedirect 異常正則表達式
我想將任何不是以“system_”開頭的 Https 的 URL 重定向到與 http 相同的 URL。
例如這個網址:
https://exsite.tld/some/thing/that/not/start/with/pattern
到 :
http://exsite.tld/some/thing/that/not/start/with/pattern
但是這個網址:
https://exsite.tld/system_aas3f4
不應該重定向。
我嘗試:
RedirectMatch ^/?((?!(system_)).*) http://exsite.tld/$1
但它不會工作。我不知道有什麼問題。
改用重寫。嘗試類似的東西
RewriteEngine on RewriteCond %{HTTPS} =on RewriteCond %{REQUEST_URI} !^/system_ RewriteRule ^/(.*) http://exsite.tld/$1 [R=301,L]
應該這樣做。請在實際環境中實施之前對其進行測試。
這些規則的狀態是:1. 啟用重寫引擎,2. 檢查 HTTPS 是否開啟,3. 檢查 URI 路徑是否不以
system_
. 如果以上兩個條件都為真,請為所有剩餘的 URI 重寫為您的域的 http 版本。