htaccess y sin www
-
24-09-2019 - |
Pregunta
Estoy tratando de redirigir toda mi sitio a la no-www
aquí está el código que estoy utilizando .htaccess
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
# no www
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.akorra\.com$ [NC]
RewriteRule ^.*$ http://akorra.com%{REQUEST_URI} [R=301,L]
alguna idea
Solución
Creo que sus reglas tienen que entre los tags de los módulos.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
# no www
RewriteCond %{HTTP_HOST} ^www\.akorra\.com$ [NC]
RewriteRule ^.*$ http://akorra.com%{REQUEST_URI} [R=301,L]
# BEGIN WordPress
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
</IfModule>
Otros consejos
Esto es lo que hay que añadir a su .htaccess
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.example.com$ [NC]
RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]
Sin embargo, si se está trabajando con Wordpress como el motor que mueve todo su sitio, simplemente actualizar la estructura de enlaces permanentes y todos los ajustes internos con su nombre de dominio en él para quitar el www.
EDIT:
pensé que era diferente cuando escribí la respuesta sentimos. Trate de mover la regla no www a la parte superior ...
# no www
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.akorra\.com$ [NC]
RewriteRule ^.*$ http://akorra.com%{REQUEST_URI} [R=301s,L]
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
de nuevo tener en cuenta si Wordpress se establece en enlaces producen con una www
entonces nada lo detendrá de revertir todo vuelva a tener un www incluso con una regla de reescritura correcta.
Más detalles de Wordpress:
Compruebe la configuración en wp/wp-admin/options-general.php
...
- Asegúrese de retirar la
www
enWordPress address (URL)
- Asegúrese de retirar la
www
enBlog address (URL)
Y a continuación, actualizar su estructura premalink en wp-admin/options-permalink.php
por lo que los cambios se reflejan.
Después de todo lo que se dice y se hace, asegúrese de Wordpress no lo hizo nuevo código de sobreescritura en su archivo .htaccess
.
Hola creo que es necesario ajustar la secuencia de comandos de la siguiente manera para la reescritura de trabajo:
Options +FollowSymlinks
RewriteEngine on
Creo que los enlaces simbólicos seguimiento absolutamente tiene que ser incluido para la reescritura de URL para que funcione correctamente.
Más consejos sobre mod_rewrite aquí:
http://www.askapache.com/htaccess/mod_rewrite -Propinas-y-tricks.html
Rob
RewriteEngine On
RewriteBase /
# no www
RewriteCond %{HTTP_HOST} ^([^.]+)\.akorra\.com$ [NC]
RewriteRule ^(.*)$ http://akorra.com/$1 [R=301,L]
# WordPres
RewriteCond %{REQUEST_URI} ^/[^\.]+[^/]$
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
Esto debería funcionar
Es mejor utilizar este pedazo de código para eliminar www de su sitio web:
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L]
que es más genérico.
y en su ejemplo que lo mejor es utilizar esto:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
# no www
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L]
# BEGIN WordPress
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
</IfModule>