2011-10-27 19 views
7

Estoy tratando de forzar www. en todas las páginas de mi sitio. Tengo la instalación de wordpress en una carpeta en mi sitio principal (/ blog). En la carpeta/blog hay un archivo .htaccess con lo siguiente:Wordpress .htaccess www. no forzando

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

En el directorio principal del sitio. Tengo un archivo .htaccess que tiene lo siguiente:

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] 

En wordpress tiene la opción establecida para www. El www. aparece en cada página, excepto el cuándo voy directamente la dirección de la site.com/blog

+2

¿Las _ "direcciones de WordPress" _ y _ "dirección del sitio" _ incluyen el 'www.' en la URL en' Configuración -> General'? – Shef

+1

Corregir si contiene el www. –

+0

Intente reemplazar 'RewriteCond% {HTTP_HOST}!^Www.sitename.com [NC]' con 'RewriteCond% {HTTP_HOST}^nombre de sitio.com [NC] ' – Shef

Respuesta

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

Ajustes GO -> General: WordPress dirección (URL) del sitio de direcciones (URL)

Y establecer tanto de ellos a www.yoursite.com (en lugar de yoursite.com), wordpress automágicamente se encarga de configurar todas las URL en www.yoursite.com y eso es todo.

Si eso no es suficiente, no debe editar el archivo .htaccess de todos modos, porque cada vez que guarde o vuelva a cargar su configuración de enlace permanente, Wordpress sobrescribirá sus .htaccesss (algunos complementos también pueden hacerlo).

Si desea volver a escribir su URL, debe hacerlo con WP Rewrite (Codex), o si desea un enfoque un poco más simple, hay un buen complemento para el llamado Redirection (Wordpress.org Plugin Directory).

En el plugin Redirection puede simplemente configurar las opciones en * .midominio.com/* para redirigir a www.midominio.com/* con un 301, y eso se ocupará de su acceso htaccess siempre que mantenga el complemento activo.

Espero que esto ayude :)

+1

Tanto la dirección de Wordpress como la dirección del sitio están configuradas en www.site.com. Prefiero no tener que ejecutar un plugin. ¿Cualquier otra sugerencia? –

+0

¿Por qué no ejecutar un plugin? Si no desea ejecutar un complemento, me temo que su única otra opción es intentar ejecutar WP Rewrite desde el archivo de funciones de la plantilla (no estoy seguro si eso funcionará, pero puede intentarlo). No puede reescribir con solo .htaccess. Depende de usted elegir cómo proceder. Como dije antes, sugeriría el complemento, es la forma más fácil y adecuada de hacer las cosas. También puede escribir un pequeño fragmento de su propio complemento. O escribe tu propio complemento (o functions.php), o usa uno existente, probablemente termines usando WP Rewrite, "Redirection" hace el trabajo por ti. – Norris

+0

No quiero ejecutar el complemento porque, quiero saber dónde está el problema. El problema no es que necesito agregar una redirección sino que está sucediendo y no debería. Como dije en los comentarios anteriores, si voy a www.site.com/blog, se lo redirecciona a site.com/blog/ pero si voy a www.site.com/blog/ no hay ninguna redirección. –

2

En el .htaccess de la instalación de WordPress (/ blog/en su caso), puede agregar el siguiente código encima de la línea que lee # 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 

Obviamente , reemplace "domain.com" con su nombre de dominio real y "subdirectorio" con el nombre del subdirectorio donde está instalado WordPress. (/ blog/en la solicitud del OP).

+0

Me doy cuenta de que esta pregunta tiene algunos años, pero busqué en la red TODO el día de ayer tratando de resolver este problema exacto. Fue solo con la ayuda de mi servidor web (HostDime) que pudimos resolverlo. Originalmente, pensé que era la configuración del .htaccess en la raíz del sitio, pero ... resulta que este código adicional es necesario para resolver este problema. DEBERÍA haber un complemento para esto, pero como nunca se sabe cuánto tiempo se admitirá un complemento ... – flcowboy7

0

Tiene opción para usted:

  1. usando wp-config.php complemento:

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

  2. usando wp-admin

sesión en su wp-admin Navegar en 'Settings' -> 'General' Bajo 'WordPress dirección (URL)' y 'Dirección del sitio (URL)' agregue www a la dirección como se muestra a continuación

Cuestiones relacionadas