Jump to content

(Solucionado)Redirección inusual a index.php


karldeux

Recommended Posts

Buenas tardes!

 

Desde hace cosa de un par de semanas google está indexando páginas de la siguiente forma www.dominio.extension/index.php/[página | directorio].

 

Os cuento un poco cómo trabajamos con prestashop.

 

Tenemos la versión 1.4.7.0, no hemos instalado ningún módulo desde hace meses y he probado a eliminar todos los .htaccess para comprobar el error.

 

Nuestro hosting trabaja con modulos php como mod_rewrite (por lo que no es una deficiencia de code igniter ni de nginx).

 

Decir también, que nuestro .htaccess principal está bastante modificado pero claro, no creo que se deba a esto puesto que al borrarlo seguía con el mismo comportamiento.

 

Un ejemplo:

 

http://www.imprentaonline.net/index.php/index.php

 

La verdad es que estoy bastante perdido, no encuentro el bucle por ningún lado. Desde el departamento de sistemas de mi hosting me han dicho que no han logrado encontrar el bucle y lo achacan a la versión del prestashop. Lo curioso es que nunca haya sucedido hasta hace una semana, semana y pico.

 

Un saludo. 

 

EDIT:

 

Ah, decir que he probado a desactivar los enlaces amigables y la redirección a la URL canónica obteniendo los mismos resultados:

 

http://www.imprentaonline.net/index.php/folletos.php

Edited by karldeux (see edit history)
Link to comment
Share on other sites

Hola karldeux:

 

A mi me suena que os está afectando alguna regla del mod_rewrite en el .htaccess.

Ese comportamiento era muy común cuando se empezaba a toquetear con CodeIgniter, así que posiblemente sea causado por este.

 

En cuanto a que dices que lo borrastes, la pregunta es: ¿cuánto tiempo le distes a Google una vez eliminado para que actualizara su listado de páginas indexadas?.

 

Un saludo y suerte.

Link to comment
Share on other sites

En principio el problema no se puede dar por la configuración de mod_rewrite porque con la misma configuración en otras versiones de prestashop no se da este problema.

 

En cuanto a lo del desindexado, realmente no me importa que el desindexado sea automático, sé que tiene su proceso, el problema es que la URL sigue siendo operativa en todos los casos, de forma que, si sigue haciendo dicha redirección constatada en la URI google seguirá indexando y posicionando y dándome contenido duplicado al llegar a el mismo archivo mediante dos rutas diferentes.

 

Saludos.

Link to comment
Share on other sites

Pues si no es del mod_rewrite como dices y tienes localizado el error en la versión que estás utilizando de Prestashop, notificalo a los desarrolladores desde el menú Comunidad -> Bug Tracker.

 

A no ser que hayas tocado alguna configuración en las Preferencias -> Seo y URLs de la tienda, no entiendo que te haga ese redireccionamiento.

De todas formas, te dejo algunos enlaces para que los revises, por si te sirven de algo:
http://www.prestashop.com/forums/topic/118570-redirigir-indexhtml-a-tiendaindexphp/

http://www.comocreartuweb.com/consultas/showthread.php/53947-Problema-Prestashop-y-redireccionamiento

Link to comment
Share on other sites

En realidad, si lo miras bien, cuando es un archivo diferente estilo index.php/folletos.php hace "append" de las dos páginas. Así que ni siquiera estoy seguro de que tenga algo que ver con un tema de redirección per sé. Sino más bien algo que ver con la gestion de las cabeceras.

Link to comment
Share on other sites

  • 2 weeks later...

Al final pude arreglar el problema. Estaba usando un "hack" para llamar al index.php

<?php
include(dirname(__FILE__) . '/config/config.inc.php');
include(dirname(__FILE__) . '/headerIndex.php'); 
$smarty->display(_PS_THEME_DIR_.'indexModificado.tpl');
include(dirname(__FILE__) . '/footer.php');

Y cambié de nuevo por el código original del index.php.
 

require(dirname(__FILE__).'/config/config.inc.php');
ControllerFactory::getController('IndexController')->run();

Después modifiqué el IndexController añadiendo esto:
 

public function displayHeader() {

	global $css_files, $js_files, $css_content;

	if (!self::$initialized) {
	    $this->init();
	}

	$css_files[_THEME_CSS_DIR_ . 'global.css'] = 'all';
	$css_files[_THEME_CSS_DIR_ . 'index.css'] = 'all';
	$js_files = array();
	$js_files[0] = "//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js";

	// P3P Policies (http://www.w3.org/TR/2002/REC-P3P-20020416/#compact_policies)
	header('P3P: CP="IDC DSP COR CURa ADMa OUR IND PHY ONL COM STA"');

	/* Hooks are volontary out the initialize array (need those variables already assigned) */
	self::$smarty->assign(array(
	    'time' => time(),
	    'img_update_time' => Configuration::get('PS_IMG_UPDATE_TIME'),
	    'static_token' => Tools::getToken(false),
	    'token' => Tools::getToken(),
	    'logo_image_width' => Configuration::get('SHOP_LOGO_WIDTH'),
	    'logo_image_height' => Configuration::get('SHOP_LOGO_HEIGHT'),
	    'priceDisplayPrecision' => _PS_PRICE_DISPLAY_PRECISION_,
	    'content_only' => (int) Tools::getValue('content_only')
	));
	self::$smarty->assign(array(
	    'HOOK_HEADER' => Module::hookExec('header'),
	    'HOOK_TOP' => Module::hookExec('top'),
	    'HOOK_LEFT_COLUMN' => Module::hookExec('leftColumn')
	));

	self::$smarty->assign('css_content', $css_content);

	if (isset($css_files) AND !empty($css_files)) {
	    self::$smarty->assign('css_files', $css_files);
	}

	if (isset($js_files) AND !empty($js_files)) {
	    self::$smarty->assign('js_files', $js_files);
	}

	if (isset($maintenance) AND (!isset($_SERVER['REMOTE_ADDR']) OR $_SERVER['REMOTE_ADDR'] != Configuration::get('PS_MAINTENANCE_IP'))) {
	    header('HTTP/1.1 503 temporarily overloaded');
	    self::$smarty->display(_PS_THEME_DIR_ . 'maintenance.tpl');
	    exit;
	}

	self::$smarty->display(_PS_THEME_DIR_ . 'headerIndex.tpl');

    }

De esta forma el index tendrá su propio tpl para el header.
 
La bucle infinito de redirección a index.php se ha solventado con esto.
 
Saludos.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...