2011-11-24 10 views
14

Tengo un problema con mis redirecciones de .htaccess. Cuando escribo:problema de las reglas de reescritura de apache para páginas específicas

http://www.domain.com/contact 

va al index.php y no contact.php

aquí está mi .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 

en mi php me sale:

<?php 

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

¿Qué me estoy perdiendo?

+0

su falta de su final '/' después del contacto –

+0

@TobyAllen '/' con el signo de interrogación de la interposición de manera utilización/o no – eric

Respuesta

17

Pruebe esta regla:

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] 

También he añadido las banderas NC, QSA, L para asegurarse de que la última regla [L] se ejecuta si partido, para no [NC] caso y [QSA] para la cadena de consulta Append.

0

Es necesario volver a escribir sus reglas sobre y datos de contacto de la siguiente manera:?

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