2011-08-22 5 views
0

이 현재 시스템은 선택적으로 다시 쓰기 조건 내에 마침표 (.)를 허용해야합니다.이 mod_rewrite 문제를 도와주세요

예 : 은 사용자 이름에 마침표를 사용할 수 있으므로 작동해야합니다.

그러나 . 또는 \\. 또는 [.]을 다음 다시 쓰기 규칙에 추가하면 apache2를 다시 시작해야하는 순환이 멈추거나 멈추게됩니다. 놀랍게도, 그 행동은 변했고 나는 그 이유를 모르겠습니다. 이제 기존 URL에 새 문자열을 추가합니다. 예를 들어

: /john.doe 내가이, 도와주세요 해결하기 위해 노력 미친려고하고 /john.doe/?pg=user&username=john.doe

RewriteRule ^/([a-z0-9_]+)$ /?pg=user&username=$1 [NC,PT] 

될 것입니다!

답변

0

이것은 작동해야합니다 (나는 "당신의 전체 시스템이 어떻게 설정되어 있고 다른 리다이렉트가 다른지 알지 못한다"라고 말하고 있습니다 - 당신은 PT 플래그를 사용하고 있습니다)) :

RewriteCond %{REQUEST_URI} !^/index\.php 
RewriteRule ^([a-z0-9_\.]+)$ /index.php?pg=user&username=$1 [NC,QSA,L] 

또는

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([a-z0-9_\.]+)$ /index.php?pg=user&username=$1 [NC,QSA,L] 

내가 직접 스크립트 파일을 지정한 - 그것은 당신이 뒤에 작동하는 방법을 알고있는 경우 규칙을 작성하는 훨씬 더 쉽다.

관련 문제