2016-06-14 2 views
0

mod_alias의 Redirect 지시어와 mod_rewrite의 RewriteRule을 모두 사용하는 아파치 설정 파일이 있습니다.mod_alias 대 mod_rewrite 우선 순위

내 이해에서 mod_alias는 파일의 맨 위에서부터 맨 아래에서 작동하며, 반대쪽에서 mod_rewrite를하면 [L] 플래그로 끝나지 않는 한 마지막 규칙이 일치합니다.

내 질문은 내 Redirect 규칙은 RewriteRule 위에 배치되지만 RewriteRule은 여전히 ​​적용되는 것처럼 보이므로 모두가 동일한 URL로 리디렉션됩니다.

무엇을 달성하려고하는 다른 웹 서버에 특정 위치를 리디렉션 및 포괄와있는 것입니다 모드를-다시는 그래서 조각은 또한이

<VirtualHost *:80> 
ServerName example.com 
Redirect permanent "/foo/bar/location1/" "https://example2.com/foo/baz/location1" 
Redirect permanent "/foo/bar/location2/abc" "https://example2.com/foo/baz/location2/def" 

RewriteEngine on 
RewriteRule ^.*$ "https://example2.com/catch-all/? [R=301, L] 

처럼 보이는 이러한 행동 할 그들이 블록이나 바깥에 있다면 다르게?

답변

0

재 작성 규칙 이후에 리디렉션 규칙을 작성해야합니다. 재 작성 규칙은 먼저 따라야하는 다시 쓰기 규칙과 리디렉션 규칙을 먼저 확인하기 때문에 작성해야합니다.

<VirtualHost *:80> 
ServerName example.com 
RewriteEngine on 
RewriteRule ^.*$ "https://example2.com/catch-all/? [R=301, L] 
Redirect permanent "/foo/bar/location1/" "https://example2.com/foo/baz/location1" 
Redirect permanent "/foo/bar/location2/abc" "https://example2.com/foo/baz/location2/def" 
+0

그렇다면 mod_rewrite가 mod_alias보다 우선 함을 의미합니까? – darethas

+0

예 mod_rewrite가 mod_alias보다 우선합니다. – karan

관련 문제