2011-11-24 18 views
14

Ho problemi con i miei reindirizzamenti .htaccess. Quando digito:problema di riscrittura di apache per pagine specifiche

http://www.domain.com/contact 

va al index.php e non il contact.php

ecco il mio .htaccess:

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 

nel mio php ottengo:

<?php 

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

Cosa mi manca?

+0

vostra manca il vostro finale '/' dopo il contatto –

+0

@TobyAllen '/' con il punto interrogativo la regola sia per uso/o non – eric

risposta

17

Prova questa regola:

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] 

Ho anche aggiunto la NC, QSA, L bandiere per assicurarsi che l'ultima regola [L] viene eseguito se partita, [NC] per non caso e [QSA] per Stringa di query di accodamento.

0

È necessario riscrivere i tuoi circa e di contatto regole nel modo seguente:?

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