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

¿Fue útil?

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 en WordPress address (URL)
  • Asegúrese de retirar la www en Blog 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>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top