2012-04-19 11 views
26

Tengo el siguiente en mi .htaccess para obligar a la www en las URL:Apache mod_rewrite: www fuerza sólo si no en localhost

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

¿Cómo se aplican solamente esto si no en el servidor local? ¿Hay algún tipo de condición si puedo? En este momento, estoy obteniendo algo como esto: http://www.localhost/ ...

Respuesta

43

RewriteCond ya es su "condición si". Sólo tiene que añadir otra:

RewriteCond %{HTTP_HOST} !=localhost 
RewriteCond %{HTTP_HOST} !^www\. 
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L] 
+4

O utilice RewriteCond% {} REMOTE_ADDR 127.0.0.1 como alternativa!. – Jan

+5

RewriteCond% {REMOTE_ADDR}! = 127.0.0.1 ¡para ser exactos! – George

+3

Si IPv6 está habilitado, localhost puede resolver a ':: 1', por lo que es posible que desee agregar esto:' RewriteCond% {REMOTE_ADDR}! = :: 1' –

11

añadí todas estas cosas:

RewriteCond %{HTTP_HOST} !=localhost 
RewriteCond %{HTTP_HOST} !=127.0.0.1 
RewriteCond %{REMOTE_ADDR} !=127.0.0.1 
RewriteCond %{REMOTE_ADDR} !=::1 
Cuestiones relacionadas