2011-11-01 3 views
2

작동하지 않는 mod_rewrite 규칙과 씨름하고 있습니다. 간단히 말해서, 나는 다음과 같은 URL을 원하는 :에 www.servername.com/showtest/1 리디렉션 : 내가 생각 www.servername.com/showtest.php?id=1Mod_Rewrite 규칙이 서버 쿼리와 작동하지 않는 것 같습니다.

내 htaccess로에서 다음해야 리디렉션 작업을 진행 :

RewriteEngine On 
RewriteRule ^showevent/(\w+)/?$ showevent.php?id=$1 [L,R,QSA] 

그러나, 작동하지 않고 PHP에서 i를 $ _GET과 $ _REQUEST 변수로 멀리 볼 수있는, 모두 비어 있습니다.

다양한 Regex를 비롯하여 일부 디버깅을 시도했습니다. 또한 mod_rewrite 로깅을 켜고 둘러 보았습니다 (로컬 서버에서 작업하고 있습니다). 다음은 관련 라인은 다음과 같습니다?

127.0.0.1 - - [01/Nov/2011:12:25:55 +0100] [127.0.0.1/sid#b7843948][rid#b76d0058/subreq] (1) [perdir /var/www/1277/] pass through /var/www/1277/showevent.php 
127.0.0.1 - - [01/Nov/2011:12:25:55 +0100] [127.0.0.1/sid#b7843948][rid#b76db058/initial] (3) [perdir /var/www/1277/] add path info postfix: /var/www/1277/showevent.php -> /var/www/1277/showevent.php/1 
127.0.0.1 - - [01/Nov/2011:12:25:55 +0100] [127.0.0.1/sid#b7843948][rid#b76db058/initial] (3) [perdir /var/www/1277/] strip per-dir prefix: /var/www/1277/showevent.php/1 -> showevent.php/1 
127.0.0.1 - - [01/Nov/2011:12:25:55 +0100] [127.0.0.1/sid#b7843948][rid#b76db058/initial] (3) [perdir /var/www/1277/] applying pattern '^showevent/(\w+)/?$' to uri 'showevent.php/1' 
127.0.0.1 - - [01/Nov/2011:12:25:55 +0100] [127.0.0.1/sid#b7843948][rid#b76db058/initial] (3) [perdir /var/www/1277/] add path info postfix: /var/www/1277/showevent.php -> /var/www/1277/showevent.php/1 

대신 showevents.php 다시 쓰기의 것으로 보인다 ID = 1, 내가 어떤 도움을 환영/1

을 showevent.php 다시 쓰기 당신 줄 수있어.

답변

1

다시 작성 규칙에서 사용하는 Flags 때문에 문제가 발생합니다. 당신은

[L, R, QSA] 에 그냥 "[L]"

는 참조 용으로 http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html#rewriteflags보기를 변경하고 싶습니다.

+0

플래그로 [L]을 사용하는 경우에도 동일한 작업을 수행합니다 (즉, 여전히 showevent.php/1로 다시 작성) –

+0

그러면 "MultiViews"옵션 일 수 있습니다. 아파치에서 MultiViews를 사용하면 "/ example"은 해당 파일이 있으면 "/example.php"로 평가됩니다. 테스트를 위해 파일을 비활성화하거나 rewrite-word 또는 파일 이름을 변경하십시오. –

+0

"Multiviews"가 실제로 문제가되었습니다. 수정 번호 –

관련 문제