我有一種情況,我嘗試使用Apache的RedirectMatch指令將所有用戶重定向到HTTPS URL ,但只有一個(Linux)用戶訪問自己的網絡空間的。我已經發現了一張正則表達式的代碼,否定了用戶名:否定Apache中的用戶空間URL
^((?!andy).)*$
但是當我嘗試在指令中使用它:
RedirectMatch ^((?!andy).)*$ https://www.example.com/
的網址:
http://www.example.com/~andy/
仍然得到重定向到HTTPS URL:
https://www.example.com/
當我想讓它忽略重定向。 我不是在正則表達式(或Apache)的專家,所以在得到這個工作的任何幫助,將不勝感激。
感謝, 斯蒂芬
編輯: OK,情節變厚...如果我註釋掉行:
# RedirectMatch ^((?!andy).)*$ https://www.example.com/
,並重新啓動Apache,然後嘗試的網址:
http://www.example.com/andy
我得到一個404響應,預計。但是,如果我嘗試的網址:
http://www.example.com/~andy
重定向被觸發,我重定向到:
https://www.example.com/
,正如我所說,重定向被註釋掉了,我已經重新啓動服務器。這怎麼會發生?所以這不僅僅是一個正則表達式,看起來Apache沒有指令就重定向了!
小心:`^((?!安迪))* $`不*包含*`andy`任何地方的字符串匹配,所以它也將在觸發`蘭迪`等我不能解釋你看到的行爲,雖然。 – 2010-12-02 10:17:53