2013-03-19 2 views
0

나는 다음과 같은 조건을 사용하여 .htaccess에서 규칙을 만들려고 해요 : 분명히이 규칙이 작동합니다아파치 다시 쓰기 규칙

RewriteEngine On 
RewriteCond %{QUERY_STRING} ^year=2013$ 
RewriteRule ^/media/news/info.php$ /media/news/month=Month&date=1 [L,R=301] 

을하지만, 그렇지 /media/news 때문에 동적으로 생성하고 apache 아무튼있다 않습니다 이 디렉토리를 찾지 못하면 스크립트 언어에 대한 요청을 반송하여 404을 반환합니다.

내 문제는 내가 apache "확인"dynamic directories에 대한 validation을 무시하고 단지 사용자가 RewriteRule에 따라 만들 수있는 방법인가?

답변

0

RewriteCondRewriteRule의 조건이 쿼리와 일치하면 RewriteRule은 HTTP 301을 사용하여 리디렉션을 수행하고 대상의 존재를 확인하지 않습니다.

즉 브라우저의 위치가 변경된 것입니다. 변경되지 않은 경우 RewriteCond이 URI와 일치하지 않거나 RewriteRule 님의 상태가 일치하지 않습니다.

아파치가/media/news/URL을 인식하게하려면 물론 RewriteRule이 필요합니다.

+0

로컬 호스트에서도 테스트했습니다. 일치하는 RewriteCond와 일치하는 RewriteRule의 조건을 사용하면 대상이 존재하지 않아도 리다이렉션이 수행됩니다. –

+0

리디렉션은 URI /media/news/info.php?year=2013 IMHO에서 작동해야합니다. –

+0

그냥 알아 냈어! 어쨌든 당신의 노력을 위해. 문제는 RewriteRule에 첫 번째 슬래시/: RewriteRule ^/media/news/info.php $ 다시 쓰기 로그의 도움으로 RewriteRule이 초기 슬래시로 인해 일치하지 않았 음을 확인할 수있었습니다. 감사합니다. – tigaszzz