.htaccess - rewritecond - rewriterule htaccess apache
.htaccess-cómo forzar "www." de una manera genérica? (7)
Esto cambiará domain.com
a www.domain.com
:
# Force the "www."
RewriteCond %{HTTP_HOST} !^www/.domain/.com$ [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L]
¿Cómo reemplazo la parte de "dominio" para que funcione en cualquier dominio?
Esto lo hará:
RewriteCond %{HTTP_HOST} !^www/.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
Esto no funcionará con los subdominios.
domain.com se redirecciona correctamente a www.dominio.com
pero
images.domain.com se redirecciona a www.images.domain.com
En lugar de verificar si el subdominio es "no www", verifique si hay dos puntos:
RewriteCond %{HTTP_HOST} ^(.*)$ [NC]
RewriteCond %{HTTP_HOST} !^(.*)/.(.*)/. [NC]
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ HTTP%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Lo siguiente debe añadir ''www'' a cualquier solicitud que no tenga uno, y redirigir la solicitud editada al nuevo URI.
RewriteCond "%{HTTP_HOST}" "!^www/." [NC]
RewriteCond "%{HTTP_HOST}" "(.*)"
RewriteRule "(.*)" "http://www.%1$1" [R=301,L]
Si desea redirigir todas las solicitudes que no son de www a su sitio a la versión de www, todo lo que necesita hacer es agregar el siguiente código a su archivo .htaccess:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www/.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
Yo usaría esta regla:
RewriteEngine On
RewriteCond %{HTTP_HOST} !=""
RewriteCond %{HTTP_HOST} !^www/. [NC]
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
La primera condición comprueba si el valor de Host no está vacío (en el caso de HTTP / 1.0); el segundo verifica si el valor del Host no comienza con www.
; el tercero comprueba que HTTPS ( %{HTTPS}
está off
o off
, por lo que %{HTTPS}s
está off
o off
y en el caso de ons
la s
coincide). La parte de sustitución de RewriteRule
simplemente fusiona las partes de información con una URL completa.
EDITAR: no funciona con URL como: https://yourdomain.com/en/usa
esto funcionó como magia para mí
RewriteCond% {HTTP_HOST} ^ sitename.com [NC] RewriteRule ^ (. *) $ https://www.sitename.com/ $ 1 [L, R = 301, NC]
RewriteEngine On
RewriteCond %{HTTP_HOST} ^[^.]+/.[^.]+$
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [NE,L,R=301]
Esto redirige example.com
a www.example.com
excluyendo subdominios.