Página 1 de 1

WordPress index.php en la URL no redirecciona

Publicado: 05 Ene 2013, 20:08
por Alejandro
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

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
En el panel de WordPress los Permalinks eran correctos, no había rastros de un index.php por ningún lado:

Imagen

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;
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 :alabanza:

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

Re: WordPress index.php en la URL no redirecciona

Publicado: 05 Ene 2013, 20:29
por elQuique
Hubieras formateado el Windows 7 pues :P

Re: WordPress index.php en la URL no redirecciona

Publicado: 05 Ene 2013, 20:44
por Alejandro
Vos te reís pero estuve 2 horas con esto y todavía no le encontré la vuelta.

Es el plugin, pues con un htacces pelado (sólo lo que genera WordpRess) y el plugin activo aún se cargaban las páginas con index.php... o sea que el "conflicto" no se genera en el htacces.

Re: WordPress index.php en la URL no redirecciona

Publicado: 28 Ene 2013, 14:20
por Alejandro
He estado buscando más información sobre este problema... como solución había optado por cambiar de plugin a W3 Total Cache... pero me está dando problemas con el servidor. No sé si es un problema del plugin, otros plugins instalados que generan conflictos o el servidor que no aguanta pero de vez en cuando se cae.

Volví a utilizar WP Super Cache a pesar del problema del index.php

Descubrí que las URLs con index.php se cargan si las páginas ya fueron cacheadas, es decir si se accede por primera vez a una página del blog (sin cachear) la redirección se realiza de forma correcta. Pero si la página ya está cacheada, el index.php se queda.

Encontré comentarios del autor del plugin donde le consultan cómo arreglarlo, pero al parecer no se puede y lo minimiza diciendo que no es problema porque tienen el canonical de WordPress. Esto es cierto... pero no es lo ideal :coffe:

Por aquí están sus comentarios, hace referencia a un problema de cookies pero en mi caso el problema se da cuando las páginas están cacheadas:

http://www.dailyblogtips.com/possible-b ... per-cache/ (en los comentarios es Donncha)

http://wordpress.org/support/topic/inde ... uper-cache

Lo extraño es que otras personas comentan y dicen que a ellos les funciona bien, sin embargo en todos los blogs que he visto el index.php se carga :blink1: