작동하지 않는 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 다시 쓰기 당신 줄 수있어.
플래그로 [L]을 사용하는 경우에도 동일한 작업을 수행합니다 (즉, 여전히 showevent.php/1로 다시 작성) –
그러면 "MultiViews"옵션 일 수 있습니다. 아파치에서 MultiViews를 사용하면 "/ example"은 해당 파일이 있으면 "/example.php"로 평가됩니다. 테스트를 위해 파일을 비활성화하거나 rewrite-word 또는 파일 이름을 변경하십시오. –
"Multiviews"가 실제로 문제가되었습니다. 수정 번호 –