Domanda

Sto cercando di reindirizzare tutto il mio sito per non www

ecco il codice .htaccess sto usando

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

tutte le idee

È stato utile?

Soluzione

Credo che le regole devono tra i tag di modulo.

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

Altri suggerimenti

Ecco cosa è necessario aggiungere al tuo .htaccess

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

Tuttavia, se si lavora con Wordpress come il motore che alimenta l'intero sito, basta aggiornare la struttura dei permalink e tutte le impostazioni interne con il tuo nome di dominio in esso per rimuovere il www.

EDIT:

Ho pensato che era diverso quando ho scritto la risposta Siamo spiacenti. Provare a spostare la regola non www alla parte superiore ...

# 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

ANCORA tenere a mente se Wordpress è impostato su legami produrre con un www allora niente lo fermerà dal ritorno tutto torna ad avere un www anche con una regola di riscrittura corretta.

Maggiori dettagli Wordpress:

Controllare le impostazioni nel wp/wp-admin/options-general.php ...

  • Accertarsi di rimuovere il www in WordPress address (URL)
  • Accertarsi di rimuovere il www in Blog address (URL)

E quindi aggiornare la struttura premalink in wp-admin/options-permalink.php in modo che le modifiche si riflettono.

Dopo tutto ciò che è stato detto e fatto, essere sicuri di Wordpress non ha fatto il nuovo codice di sovrascrittura nel file .htaccess.

Ciao Penso che è necessario regolare lo script come segue per la riscrittura di lavoro:

Options +FollowSymlinks
RewriteEngine on

Credo che i link simbolici successivi ha assolutamente essere inclusi per la riscrittura degli URL per funzionare correttamente.

Maggiori consigli su mod_rewrite qui:

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

Questo dovrebbe funzionare

Suggerisco di usare questo pezzo di codice per la rimozione di www dal tuo sito web:

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

è più generico.

e nel tuo esempio è meglio usare questo:

<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>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top