rewritecond - .htaccess Eliminar WWW de URL+Directorios
redireccionar con htaccess (6)
Código de redireccionamiento para ambos, no www => www y opuesto www => no www. No hay dominios y esquemas de hardcoding en el archivo .htaccess. Por lo tanto, se conservarán el dominio de origen y la versión http / https.
APACHE 2.4 Y MÁS NUEVO
NON-WWW => WWW:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www/. [NC]
RewriteRule ^ %{REQUEST_SCHEME}://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
WWW => NON-WWW:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www/.(.*)$ [NC]
RewriteRule ^ %{REQUEST_SCHEME}://%1%{REQUEST_URI} [R=301,L]
Nota: no funciona en Apache 2.2 donde% {REQUEST_SCHEME} no está disponible. Para compatibilidad con Apache 2.2 use el siguiente código o reemplace% {REQUEST_SCHEME} con http / https fijo.
APACHE 2.2 Y MÁS NUEVO
NON-WWW => WWW:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} !^www/. [NC]
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} !^www/. [NC]
RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
... o una versión más corta ...
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www/. [NC]
RewriteCond %{HTTPS}s ^on(s)|offs
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
WWW => NON-WWW:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^www/.(.*)$ [NC]
RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L]
RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} ^www/.(.*)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [R=301,L]
... la versión más corta no es posible porque% N está disponible solo desde la última RewriteCond ...
Esto parece no ser un problema para muchas personas (léase: no puedo encontrar una respuesta), pero me gustaría actualizar el siguiente código htaccess para no solo eliminar el ''www'' de la URL, sino también cualquier subtítulo directorios a los que se accede.
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www/.(.+)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
Con esto, http://www.example.com/any/ resuelve bien, pero quiero que se redireccione a http://example.com/any/ como con la raíz.
Creo que estás cerca, pero intenta lo siguiente:
# force non-www domain
RewriteCond %{HTTP_HOST} ^www/.example/.com$ [NC]
RewriteRule (.*) http://example.com/$1 [R=301,L]
No estoy seguro exactamente qué quiere decir con los subdirectorios, pero esto sigue su ejemplo.
Lo usé y funcionó para mí
RewriteCond %{HTTP_HOST} ^www.locphen.vn/$ [NC]
RewriteRule ^(.*)$ http://locphen.vn/$1 [R=301,L]
Ejemplo: http://www.locphen.vn/he-thong-loc-nuoc-gieng.html -> http://locphen.vn/he-thong-loc-nuoc-gieng.html
Tuve el mismo problema (problemas para eliminar ''www'' de las URL que apuntan a un subdirectorio en un dominio complementario), pero después de algunas pruebas y errores, esto parece funcionar para mí:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www/.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1%{REQUEST_URI} [R=301,QSA,NC,L]
Yo uso este código Si mi visitante no tiene www en su url, esta condición agrega www con url, de lo contrario no es necesario agregar www con url (porque ya lo ha hecho :))
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www/.YOUR-SITE/.com$ [NC]
RewriteRule ^(.*) http://www.YOUR-SITE.com/$1 [L,R]
Hola, el código funciona perfectamente, excepto que pasa con el www en una url con algún valor y una barra al final muestra el parámetro y el valor en la url.
RewriteEngine On
SetOutputFilter DEFLATE
AddOutputFilterByType DEFLATE text/html text/plain text/xml
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(!.(/.gif|/.jpg|/.png|/.swf|/.css|/.js|/.txt|/.php|/.htm|/.html)|.+[^/])$ /$1/ [R=301,NC]
RewriteRule ^(.[^.*]+)//$ ?jogar=$1 [NC]
Options -Indexes
Options +FollowSymLinks
RewriteCond %{HTTP_HOST} ^www/.(.*)$ [NC]
RewriteRule ^(.*)$ http:////%1%{REQUEST_URI} [R=301,QSA,NC,L]