Apache-2.2

Apache MatchRedirect 異常正則表達式

  • August 3, 2013

我想將任何不是以“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 版本。

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