2011-10-27 17 views
7

sto cercando di forzare www. su tutte le pagine del mio sito. Ho wordpress installare in una cartella sul mio sito principale (/ blog). Nella cartella/blog c'è un file .htaccess con il seguente:Wordpress .htaccess www. Non forzare

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /blog/index.php [L] 
</IfModule> 

Nel dir principale del sito. Ho un file .htaccess che ha il seguente:

RewriteEngine on 
RewriteCond %{HTTP_HOST} !^www.sitename.com [NC] 
RewriteRule (.*) http://www.sitename.com/$1 [R=301,L] 
RewriteRule ^blog/index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^blog/(.*)$ /blog/index.php [L] 

Nel wordpress è disponibile l'opzione per www. Il www. appare su ogni pagina, tranne il quando vado dritto l'indirizzo site.com/blog

+2

Fa il _ "indirizzo WordPress" _ _ e "indirizzo del sito" _ include il 'www.' nell'URL sotto' Impostazioni -> Criteri generali? – Shef

+1

Corretto, contiene il www. –

+0

Provare a sostituire 'RewriteCond% {HTTP_HOST}!^Www.sitename.com [NC]' 'con RewriteCond% {}^HTTP_HOST sitename.com [NC] ' – Shef

risposta

4
RewriteCond %{HTTP_HOST} !^www\.(.*) 
RewriteRule (.*) http://www.%{HTTP_HOST}/$1 [R=301,L] 
7

Impostazioni Go -> Generale: WordPress indirizzo (URL) del sito indirizzo (URL)

E impostare sia di loro per www.yoursite.com (invece di yoursite.com), WordPress automagicamente si prende cura di impostare tutti gli URL per www.yoursite.com e il gioco è fatto.

Se questo non è abbastanza, non dovresti comunque modificare il file .htaccess, perché ogni volta che salvi o ricarichi le impostazioni del permalink, Wordpress sovrascriverà i tuoi .htaccess (alcuni plugin potrebbero farlo anche tu).

Se si desidera riscrivere l'URL, è necessario farlo con WP Rewrite (Codex) oppure, se si desidera un approccio un po 'più semplice, è disponibile un buon plug-in denominato Redirection (Wordpress.org Plugin Directory).

In Plugin di reindirizzamento puoi semplicemente impostare le opzioni su * .mydomain.com/* per reindirizzare a www.mydomain.com/* con un 301, e che si prenderà cura del tuo htaccess purché tu mantenga il plugin attivo.

Spero che questo aiuti :)

+1

Sia l'indirizzo di Wordpress che l'indirizzo del sito sono impostati su www.site.com. Preferirei non dover eseguire un plugin. Qualche altro suggerimento? –

+0

Perché non dovresti eseguire un plugin? Se non vuoi eseguire un plug-in, temo che l'unica altra opzione stia cercando di eseguire WP Rewrite dal file delle funzioni del modello (non sono sicuro che funzioni, ma puoi provarlo). Non puoi riscrivere semplicemente con .htaccess. Sta a te scegliere come procedere. Come ho detto prima, suggerirei il plug-in, è il modo più semplice e corretto di fare le cose. Puoi anche scrivere un piccolo minuscolo frammento del tuo plugin. O scrivi il tuo plugin (o functions.php), o usane uno esistente, probabilmente finirai per usare WP Rewrite, "Reindirizzamento" fa semplicemente il duro lavoro per te. – Norris

+0

Non voglio eseguire il plugin perché, voglio sapere dove si trova il problema. Il problema non è che ho bisogno di aggiungere un reindirizzamento è che uno sta accadendo e non dovrebbe. Come ho detto nei commenti sopra, se vado su www.site.com/blog viene reindirizzato a site.com/blog/ ma se vado su www.site.com/blog/ non c'è reindirizzamento. –

2

Nel .htaccess della installazione di WordPress (/ blog/nel tuo caso), è possibile aggiungere il seguente codice sopra la riga # BEGIN WordPress

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteCond %{HTTP_HOST} !^www\.domain\.com$ [NC] 
RewriteRule ^(.*)$ "http\:\/\/www\.domain\.com\/subdirectory\/$1" [R=301,L] 
</IfModule> 
## Redirect primary WordPress URL to WWW version 

Ovviamente , sostituire "dominio.com" con il nome di dominio effettivo e la "sottodirectory" con il nome della sottodirectory in cui è installato WordPress. (/ blog/nella richiesta dell'OP).

+0

Mi rendo conto che questa domanda ha qualche anno, ma ho cercato in rete TUTTI i giorni ieri cercando di capire questo problema esatto. E 'stato solo con l'aiuto del mio host web (HostDime) che siamo stati in grado di capirlo. Inizialmente, pensavo che fosse la configurazione del .htaccess nella radice del sito, ma ... risulta che questo codice extra è necessario per risolvere questo problema. DOVREBBE essere un plug-in per questo, ma dal momento che non si sa mai per quanto tempo sarà supportato un plugin .... – flcowboy7

0

avere l'opzione per voi:

  1. utilizzando wp-config.php aggiuntivo:

    define ('WP_HOME', 'http://www.domainname.com'); define ('WP_SITEURL', 'http://www.domainname.com');

  2. utilizzando wp-admin

Accedi al tuo wp-admin Sfoglia 'Impostazioni' -> 'Generale' Under 'WordPress indirizzo (URL)' e 'indirizzo del sito (URL)' aggiungi www all'indirizzo come illustrato di seguito

Problemi correlati