Redirección de dominio comodín con WordPress

3 minutos de lectura

avatar de usuario
chispeante

Tengo dos nombres de dominio configurados con subdominios de la siguiente manera…

blog.domain.com
www.blog.domain.com

blog.domain.info
www.blog.domain.info

Ambos dominios apuntan a la misma ubicación en el mismo servidor, un directorio que contiene WordPress. (dominio.com/blog)

Para mantener contento a Google, quiero que todo se redirija a este dominio…

blog.domain.com

Esto es lo que hay dentro del archivo .htaccess contenido en el directorio de WordPress…

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

Así que entré en mi cPanel y agregué una redirección de dominio 301 de la siguiente manera…

blog.dominio.info -> blog.dominio.com (con “www” opcional y comodín seleccionado).

Luego, cPanel agregó automáticamente lo siguiente al mismo archivo .htaccess bajo las reglas de reescritura de WordPress…

RewriteCond %{HTTP_HOST} ^blog.domain.info$ [OR]
RewriteCond %{HTTP_HOST} ^www.blog.domain.info$
RewriteRule ^(.*)$ "http\:\/\/blog\.domain\.com$1" [R=301,L]

El problema es que la parte del comodín no parece funcionar.

Cuando voy a blog.dominio.infosoy redirigido a blog.dominio.com como se esperaba.

Pero cuando voy a blog.dominio.info/mi-publicaciónno soy redirigido en absoluto.

  1. ¿Cómo puedo arreglar esto? He intentado reescribir reglas que sé que funcionan, pero todo lo que puedo pensar es que las reglas de WordPress están interfiriendo.

  2. Una vez que se solucione, ¿puedo mover estas reescrituras de mods al .htaccess principal en la raíz www de la cuenta de alojamiento manteniéndolas separadas de las reglas de WordPress? Editar: Respuesta- NO, no funcionarán porque son dominios estacionados en directorios fuera de la raíz www.

¡Gracias!

avatar de usuario
chispeante

Parece que simplemente tuve que mover las nuevas reglas arriba de la sección de WordPress. También agregué uno nuevo que se supone que elimina el ‘www’ del nombre de dominio punto com.

Todo esto parece estar funcionando.

Cualquier comentario apreciado.

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^blog.domain.info$ [OR]
RewriteCond %{HTTP_HOST} ^www.blog.domain.info$ [OR]
RewriteCond %{HTTP_HOST} ^www.blog.domain.com$
RewriteRule ^(.*)$ "http\:\/\/blog\.domain\.com\/$1" [R=301,L]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

EDITAR

Cabe señalar que si cambia algo en el archivo htaccess contenido entre estos comentarios de WordPress, WordPress podría sobrescribirlo más adelante. Mover sus ediciones personalizadas fuera Y encima de este bloque también funciona y es inmune a cualquier cambio en htaccess realizado por WordPress.

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^blog.domain.info$ [OR]
RewriteCond %{HTTP_HOST} ^www.blog.domain.info$ [OR]
RewriteCond %{HTTP_HOST} ^www.blog.domain.com$
RewriteRule ^(.*)$ "http\:\/\/blog\.domain\.com\/$1" [R=301,L]

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

Tengo varios dominios para mi sitio MethodShop, incluidos methodshop.com, methodshop.net, etc. Al realizar el mantenimiento, desviaré el tráfico entre los diferentes sitios para que mis usuarios no vean interrumpida su experiencia. a continuación se muestra el script comodín htaccess que uso. toma cualquier URL a la que el usuario intente acceder y refleja ese enlace en otro dominio.

por ejemplo,
http://methodshop.NET/games/play/bubblewrap/index.shtml

redirigiría a
http://methodshop.COM/games/play/bubblewrap/index.shtml

aquí está el script htaccess para methodshop.net que reescribe todas las URL de methodshop.net a methodshop.com. solo edítalo para tu dominio.

RewriteEngine on

RewriteRule (.*)$ http://www.methodshop.com\/$1 [R=301,L]

  • No es bueno. Su sugerencia provocó un error de “demasiados redireccionamientos” en mi servidor. donde estan los RewriteBase o RewriteCond ¿líneas?

    – chispeante

    24/10/2012 a las 23:06

¿Ha sido útil esta solución?