아파치의 RedirectMatch 지시문을 사용하여 모든 사용자를 HTTPS URL 으로 리디렉션하려는 상황이 있습니다. 자신의 웹 스페이스에 액세스하는 단일 (Linux) 사용자를 제외합니다. 나는 사용자 이름 부정 정규식 코드 조각 발견 :아파치의 사용자 공간 URL을 반대로합니다.
^((?!andy).)*$
을하지만이 지침에서 사용하려고하면
이RedirectMatch ^((?!andy).)*$ https://www.example.com/
의 URL :
http://www.example.com/~andy/
은 아직 도착 HTTPS URL로 리디렉션 됨 :
https://www.example.com/
리디렉션을 무시하고 싶습니다. 정규 표현식 (또는 Apache)의 전문가가 아니므로이 작업을하는 데 도움이 될 것입니다.
감사합니다, 스티븐
편집 : 확인, 플롯은 두껍게 ... 나는 줄 주석 경우 :
# RedirectMatch ^((?!andy).)*$ https://www.example.com/
을하고 아파치를 다시 시작한 다음 URL 시도 :
을http://www.example.com/andy
404 응답이 예상됩니다. 그러나, 나는 URL을 시도하는 경우 :
http://www.example.com/~andy
리디렉션이 트리거 내가 리디렉션하고있다 :
https://www.example.com/
내가 말했듯이, 리디렉션이 주석하고 내가 서버를 다시 시작했다. 어떻게 될 수 있습니까? 그래서 이것은 정규 표현식이 아니라 아파치가 지시없이 방향을 바꾸는 것 같습니다!
는주의 (대신 mod_alias가의 mod_rewrite를 사용) 랜디 (randy) 등. 나는 당신이 보는 행동을 설명 할 수 없다. –