Para la canonicalización de IP, me dicen que necesito redirigir la dirección IP del sitio al nombre de dominio. Estoy ejecutando una instalación estándar de WordPress que ya viene con su propio archivo .htaccess. Lo modifiqué a continuación agregando la línea “Redireccionar”:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
Redirect 301 http://12.34.56.789 http://www.domainname.com
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Sin embargo, no está funcionando. Alguien sabe qué está mal?
¡Gracias!
Por lo general, no desea mezclar Redirect
(mod_alias) con RewriteRule
(mod_rewrite) porque ambos se aplican al mismo URI y a veces se golpean entre sí. Simplemente quédese con mod_rewrite porque tiene reglas de wordpress que ya lo usan.
Reemplace la
Redirect 301 http://12.34.56.789 http://www.domainname.com
con:
RewriteCond %{HTTP_HOST} ^12\.34\.56\.789$
RewriteRule ^(.*)$ http://www.domainname.com/$1 [L,R=301]
-
La condición de reescritura podría expresarse más vagamente como
RewriteCond %{HTTP_HOST} ^\d+\.\d+\.\d+\.\d+$
— no hay necesidad de restringir esta regla a una sola dirección IP.– r3mainer
14 de noviembre de 2013 a las 22:49
-
No me di cuenta de que había una diferencia (redirect vs rewriteule). ¡Gracias!
– Yazmín
14/11/2013 a las 22:50
-
El problema de @squeamishossifrage con eso es si el servidor realmente escucha múltiples direcciones IP, y diferentes nombres de host podrían asignarse a diferentes IP. Si redirige todas las direcciones IP a un solo nombre de host, pierde esa asignación.
– Jon Lin
14 de noviembre de 2013 a las 22:52
-
@JonLin Estamos hablando de un archivo .htaccess aquí, no de httpd.conf
– r3mainer
14 de noviembre de 2013 a las 22:58
La respuesta de Jon Lin funcionó para mí, pero tuve que usar
RewriteCond %{REMOTE_ADDR} ^12\.34\.56\.789$
RewriteRule ^(.*)$ http://www.domainname.com/$1 [L,R=301]
en vez de
RewriteCond %{HTTP_HOST} ^12\.34\.56\.789$
RewriteRule ^(.*)$ http://www.domainname.com/$1 [L,R=301]