WordPress index.php en la URL no redirecciona
Publicado: 05 Ene 2013, 20:08
Hace algunos días noté que el blog mostraba el mismo contenido al agregar un index.php al principio de la URL. Por ejemplo:
- http://spamloco.net/2013/01/me-pueden-infectar-de-forma-oculta-por-medio-de-un-enlace.html
- http://spamloco.net/index.php/2013/01/me-pueden-infectar-de-forma-oculta-por-medio-de-un-enlace.html
Esto no debería de suceder porque el propio WordPress se encarga de redireccionar la URL con index.php hacia la otra que es la correcta, es una cuestión de optimización como mencionan en Ayuda WordPress. Sin embargo esto no estaba sucediendo en mi caso y hoy de tarde me picó el bichito para solucionarlo.
El htacces que tenía era el correcto, el generado por WordPress: http://codex.wordpress.org/Using_Permalinks#Creating_and_editing_.28.htaccess.29
En el panel de WordPress los Permalinks eran correctos, no había rastros de un index.php por ningún lado:
Googleando algunos comentaban que era un problema entre el servidor y WordPress que no reconocía el Apache para realizar la redirección. Para que WordPress detectara el Apache había que realizar un pequeño cambio en el archivo /wp-includes/vars.php.
Se comenta la primer línea y se agrega la segunda:
Se puede poner un 1 o true.
Esto estaba seguro de que no era pero no perdía nada con probarlo, tampoco lo solucionó.
Ya no sabía que hacer, así que le comenté por chat al Quique el problema que siempre tiene una solución para todo
Enseguida me sugirió que podría ser el plugin de caché: WP Super Cache.
Así que probé desactivarlo y como por arte de magia las URLs con index.php comenzaron a redireccionar hacia las correctas.
Al principio pensé que el problema lo generaba una opción que utiliza mod_rewrite para cargar las páginas cacheadas, así que lo cambié a otra que las genera con PHP. La opción del mod_rewrite es la recomendada pero como agregaba un montón de líneas al htacces pensé que ese sería el problema.
Sin embargo de ambas formas las páginas con index.php volvían a cargar.
Probé desactivarlo, volverlo a instalar, toquetearlo un poquito, etc pero no encontré solución. Así que opté por eliminarlo y cambiarlo por W3 Total Cache.
Lo comento porque seguramente esto le puede estar pasando a más de uno... de hecho creo que ocurre con todos los sitios que tienen WP Super Cache. Si alguien sabe cómo solucionarlo con WP Super Cache sería genial, yo lo intenté pero no conseguí mucho.
Ejemplos de sitios que lo utilizan y cargan con index.php:
- http://searchengineland.com/index.php/from-praise-to-outrage-reactions-to-googles-antitrust-settlement-144273
- http://searchengineland.com/index.php/guide/what-is-seo
- http://blog.sucuri.net/index.php/2012/12/w3-total-cache-implementation-vulnerability.html
- http://spamloco.net/2013/01/me-pueden-infectar-de-forma-oculta-por-medio-de-un-enlace.html
- http://spamloco.net/index.php/2013/01/me-pueden-infectar-de-forma-oculta-por-medio-de-un-enlace.html
Esto no debería de suceder porque el propio WordPress se encarga de redireccionar la URL con index.php hacia la otra que es la correcta, es una cuestión de optimización como mencionan en Ayuda WordPress. Sin embargo esto no estaba sucediendo en mi caso y hoy de tarde me picó el bichito para solucionarlo.
El htacces que tenía era el correcto, el generado por WordPress: http://codex.wordpress.org/Using_Permalinks#Creating_and_editing_.28.htaccess.29
Código: Seleccionar todo
# 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
Googleando algunos comentaban que era un problema entre el servidor y WordPress que no reconocía el Apache para realizar la redirección. Para que WordPress detectara el Apache había que realizar un pequeño cambio en el archivo /wp-includes/vars.php.
Se comenta la primer línea y se agrega la segunda:
Código: Seleccionar todo
//$is_apache = (strpos($_SERVER['SERVER_SOFTWARE'], 'Apache') !== false || strpos($_SERVER['SERVER_SOFTWARE'], 'LiteSpeed') !== false);
$is_apache = 1;
Esto estaba seguro de que no era pero no perdía nada con probarlo, tampoco lo solucionó.
Ya no sabía que hacer, así que le comenté por chat al Quique el problema que siempre tiene una solución para todo
Enseguida me sugirió que podría ser el plugin de caché: WP Super Cache.
Así que probé desactivarlo y como por arte de magia las URLs con index.php comenzaron a redireccionar hacia las correctas.
Al principio pensé que el problema lo generaba una opción que utiliza mod_rewrite para cargar las páginas cacheadas, así que lo cambié a otra que las genera con PHP. La opción del mod_rewrite es la recomendada pero como agregaba un montón de líneas al htacces pensé que ese sería el problema.
Sin embargo de ambas formas las páginas con index.php volvían a cargar.
Probé desactivarlo, volverlo a instalar, toquetearlo un poquito, etc pero no encontré solución. Así que opté por eliminarlo y cambiarlo por W3 Total Cache.
Lo comento porque seguramente esto le puede estar pasando a más de uno... de hecho creo que ocurre con todos los sitios que tienen WP Super Cache. Si alguien sabe cómo solucionarlo con WP Super Cache sería genial, yo lo intenté pero no conseguí mucho.
Ejemplos de sitios que lo utilizan y cargan con index.php:
- http://searchengineland.com/index.php/from-praise-to-outrage-reactions-to-googles-antitrust-settlement-144273
- http://searchengineland.com/index.php/guide/what-is-seo
- http://blog.sucuri.net/index.php/2012/12/w3-total-cache-implementation-vulnerability.html