2011-08-15 4 views
2

근무 시간 이후에 다음 .htaccess 파일을 만들었습니다. 모든 것이 제대로 작동하는 것 같습니다. 그러나 mod_rewrite가 처음인데 내 코드가 아마추어적인 것 같아서 개선해야 할 부분을 찾고 있습니다..htaccess mod_rewrite 자료를 개선하려면 어떻게해야합니까?

예를 들어, 규칙 끝에 [L]을 사용하면 재 작성의 나머지 부분은 무시되지만 재 작성 로그를 보면 필자는 그렇지 않은 것으로 나타났습니다. 불필요한 패턴 일치가 있습니다. 모든 것을 늦출 것이다.

또한 나는 [C]의 뜻 체인 재 작성 조건라는 책을 가지고 있지만, 내 아파치 당신은 대신에 아래의 규칙과 같은 규칙의 MultiViews을 옵션을 추가 할 수

http://pastebin.com/62JyBXdS

+0

에 대한 해고 규칙을 방지하기 위해

RewriteCond %{REQUEST_URI} !^/[^/]+\.php 

같은 somethine의한다 RewriteCond를 추가하면 잘 규칙의 일부 ... 예를 들어'RewriteRule의를 압축 할 수 나에게 뛰어든 것은'silver.mydomain.com/images' 6 행과'boston. '뿐입니다. ^/([dprcmlfb])/(.dprcmlfb) $ /$1\.php/$2 [L]' –

+0

마. * sigh *'26 행에 ... 그걸 지우고 댓글을 달고 싶을 것 같은가요? ;-) – stealthyninja

답변

0

참으로 그러나 다시 URL이 규칙 때문에 두 번째 로그의 여러 항목의 모든 통해 다시 전달 될 수 처리에서 더 규칙을 방지 않습니다 [L] 플래그 -의 http://httpd.apache.org/docs/2.2/rewrite/flags.html#flag_l

을 많이 매뉴얼 페이지를 참조하십시오 당신의 재 작성 규칙은 다른 데이터로 똑같은 일을하고 하나의 정규식으로 압축 될 수 있습니다. 몇 가지를했지만 전체 목록을 작성할 수 있습니다.

RewriteRule ^/([dprcmlfb]|members|lnli|freelisting)/(.*)$ /$1\.php/$2 [L] 

당신은 또한 PHP 파일 요청

0

가 발생합니다 :

RewriteRule ^/d/(.*)$ /d\.php/$1 [L] 

다른 규칙이 간섭하지 않으면 MultiViews는/d/stuff를 d.php에 대한 요청으로 올바르게 해석합니다.

관련 문제