Question

Je suis en train de réorienter mon site tout à la non-www

Voici le code htaccess J'utilise

# 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]

idées

Était-ce utile?

La solution

Je pense que vos règles doivent entre les balises du module.

<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>

Autres conseils

Voici ce que vous devez ajouter à votre .htaccess

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.example.com$ [NC]
RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]

Cependant, si vous travaillez avec Wordpress comme le moteur qui alimente votre site entier, simplement mettre à jour la structure permalien et tous les paramètres internes avec votre nom de domaine pour supprimer le www.

EDIT:

Je pensais que était différent quand j'ai écrit la réponse Désolé. Essayez de déplacer votre règle non www au sommet ...

# 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

garder AGAIN à l'esprit si Wordpress est réglé pour produire des liens avec un www alors rien ne l'arrêtera de tout revenir en arrière pour avoir un www même avec une règle de réécriture correcte.

Détails Plus Wordpress:

Vérifiez les paramètres dans wp/wp-admin/options-general.php ...

  • Assurez-vous de retirer le www dans WordPress address (URL)
  • Assurez-vous de retirer le www dans Blog address (URL)

puis mettre à jour la structure de votre premalink dans wp-admin/options-permalink.php de sorte que les changements sont pris en compte.

Après tout ce qui est dit et fait, assurez-vous Wordpress ne pas écraser le nouveau code dans votre fichier .htaccess.

Salut, je pense que vous devez ajuster votre script comme suit pour la réécriture au travail:

Options +FollowSymlinks
RewriteEngine on

Je crois que les liens symboliques de suivi doit absolument être inclus pour l'url rewriting fonctionne correctement.

Plus de conseils sur mod_rewrite ici:

http://www.askapache.com/htaccess/mod_rewrite -Conseils-et 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]

Cela devrait fonctionner

Je suggère d'utiliser ce morceau de code pour enlever www de votre site:

RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L]

il est plus générique.

et dans votre exemple, il est préférable d'utiliser ceci:

<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>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top