Redirigir no www a www en .htaccess
Tengo esto en mi archivo .htaccess:
RewriteCond %{HTTP_HOST} ^example.com$
RewriteRule (.*) http://www.example.com$1 [R=301,L]
pero cada vez que accedo a un archivo en mi raíz, http://example.com/robots.txt
se redirigirá a http://www.example.comrobots.txt/
.
¿Cómo puedo corregir esto para que se redirija correctamente a http://www.example.com/robots.txt
?
Cambie su configuración a esto (agregue una barra):
RewriteCond %{HTTP_HOST} ^example.com$ [NC]
RewriteRule (.*) http://www.example.com/$1 [R=301,L]
O la solución que se describe a continuación (propuesta por @absiddiqueLive ) funcionará para cualquier dominio:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
Si necesita admitir http y https y conservar la opción de protocolo, intente lo siguiente:
RewriteRule ^login\$ https://www.%{HTTP_HOST}/login [R=301,L]
Donde reemplaza login
con checkout.php
o cualquier URL que necesite para admitir HTTPS.
Sin embargo, yo diría que esta es una mala idea. Para conocer el razonamiento , lea esta respuesta .
Aquí está la solución correcta que admite https y http:
# Redirect to www
RewriteCond %{HTTP_HOST} ^[^.]+\.[^.]+$
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
UPD.: para dominios como .co.uk
, reemplace
RewriteCond %{HTTP_HOST} ^[^.]+\.[^.]+$
con
RewriteCond %{HTTP_HOST} ^[^.]+\.[^.]+\.[^.]+$
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
Para HTTPS
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^(.*)$ http%1://www.%{HTTP_HOST}/$1 [R=301,L]
El siguiente ejemplo funciona tanto en SSL como en no SSL y es mucho más rápido ya que utiliza una sola regla para administrar http y https.
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\.
RewriteCond %{HTTPS}s on(s)|offs()
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [NE,L,R]
[Probado]
Esto redirigirá
http
- http://ejemplo.com
a
- http://www.ejemplo.com
https
- https://ejemplo.com
a
- https://www.ejemplo.com