2011-11-24 2 views
14

.htaccess 리디렉션에 문제가 있습니다. 내가 입력 할 때 : 내가 얻을 내 PHP에서특정 페이지에 대한 아파치 다시 쓰기 규칙 문제

Redirect 301 /clients http://clients.domain.com 

RewriteEngine On 
SetEnvIf Host ^www\. page=www 
SetEnvIf Host ^mob\. page=mobile 

RewriteBase/
SetEnvIfNoCase User-Agent "^Wget" bad_bo 
#etc ... 
Deny from env=bad_bot 

RewriteCond %{HTTP_HOST} !^www.domain.com 
RewriteRule (.*) http://www.domain.com/$1 [R=301] 

RewriteRule ^about/?$ about.php 
RewriteRule ^contact/?$ contact.php 

rewriterule ^(.*)$ index.php?subdomain=%{ENV:page}&page=$1 

:

http://www.domain.com/contact 

는 index.php에 아닌 contact.php로 이동 여기 내 htaccess로의

<?php 

print_r($_GET); 
Array (
    [subdomain] => www 
    [page] => contact.php 
) 

무엇이 누락 되었습니까?

+0

누락 된 최종 '/'후 접촉 –

+0

@TobyAllen'/'문제는 규칙 중 하나를 사용/표시 또는 아니 – eric

답변

17

이 규칙을 시도해보십시오

RewriteCond %{HTTP_HOST} !^www.domain.com [NC] 
RewriteRule (.*) http://www.domain.com/$1 [R=301,L] 

RewriteRule ^about/?$ about.php [NC,QSA,L] 
RewriteRule ^contact/?$ contact.php [NC,QSA,L] 

rewriterule ^([a-z0-9]+)$ index.php?subdomain=%{ENV:page}&page=$1 [NC,QSA,L] 

가 나는 또한 경기를 확실 마지막 규칙 [L]는 쿼리 문자열 추가]를 들어, 비 케이스 [NC][QSA]을 실행하기 위해 NC, QSA, L 플래그를 추가했다.

0
다음과 같은 방법으로 약 접촉 규칙을 다시 작성해야

:

RewriteRule ^about/?$ about.php [L,QSA] 
RewriteRule ^contact/?$ contact.php [L,QSA]