2011-10-06 9 views
9

Sí, sé que esta pregunta se ha hecho 1000 veces antes ... aquí es la diferencia ...(otra más) ¿Una forma hermosa de eliminar www mediante la reescritura en .htaccess?

He encontrado esta respuesta en StackOverflow para añadir el "www" aquí: use htaccess to add www with https support

RewriteCond %{HTTP_HOST} !^www\. 
RewriteCond %{HTTPS}s ^on(s)| 
RewriteRule^http%1://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 

y es la solución más bella y elegante que he visto:

  • funciona
  • no necesita ser cambiado para ser usados ​​por el Dominio ESPECÍFICOS
  • En él se contemplan conexiones HTTP y HTTPS
  • Sus únicos 3 líneas

lo tanto, mi pregunta es simple. ¿Alguien puede ayudarme a adaptar este código para trabajar en la dirección opuesta? (Para eliminar el WWW de las direcciones web y abordar todos los puntos anteriores)?

Creo que entre las soluciones anteriores (y con suerte a continuación), tendremos la reescritura de www para gobernarlas todas.

Respuesta

11
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC] 
RewriteCond %{HTTPS}s ^on(s)| 
RewriteRule^http%2://%1%{REQUEST_URI} [L,R=301] 

Tomado del archivo de Drupal 7 .htaccess, funciona como un encanto. Se actualizó un poco para agregar la comprobación de https.

+0

yep! ¡Perfecto! ¡¡Gracias!! :) – ethanpil

2

Tengo un problema con la respuesta anterior, se comenzó a redirigir a http://http:///

por lo que hice algunos cambios y esto es código que trabajó para mí (en apache2 servidor de Ubuntu, un servidor VPS) para redirigir http://www.example.com-http://example.com(www a no www) Y de http://example.com a https://example.com(http a https).

RewriteCond %{HTTPS}s on(s)| 
    RewriteCond %{HTTP_HOST} ^www\.(.+)$ 
    RewriteRule^http%2://%1%{REQUEST_URI} [R=301,L] 
+0

@bummi Gracias por editar la respuesta. Erróneamente puse url real aquí. Seguiré los estándares la próxima vez. –

Cuestiones relacionadas