Hallo Hansi73,
hatte den selben Effekt in einem 1.06er shop auch, trotz canonical link im template. Im access.log des Webservers stellte sich raus, dass ein Googlebot
direkt, durch ein
GET /print_product_info.php?products_id=4711
die print-Beschreibung eines Artikels anforderte, der auf inaktiv stand. print_product_info.php, speziell der errorhandler braucht aber etwas Kontext, u.a. eine übergeordnete $smarty-Variable, und die ist in diesem Fall nicht da. Deshalb ist Deine Fährte schon richtig. Ich hab das in einer Installation so gelöst:
if (!is_object($product) || !$product->isProduct()) { // product not found in database // if this file was called directly - by a bot - redirect to product_info, since environment is incomplete if (!isset($smarty)) { xtc_redirect
(xtc_href_link
(FILENAME_PRODUCT_INFO
, 'products_id=' . (int
)$_GET['products_id'], 'NONSSL')); } else { $error = TEXT_PRODUCT_NOT_FOUND
; include (DIR_WS_MODULES
.FILENAME_ERROR_HANDLER
); } } else { // defaults im php-error.log steht in solchen Fällen nur sowas:
PHP Fatal error: Call to undefined function xtc_hide_session_id() in /var/www/shop/includes/modules/error_handler.php on line ...
und man legt sich die Karten, wieso das include fehlt. Den Zusammenhang gibts dann über Vergleich des Zeitstempels des Eintrags mit dem access.log.
Viele Grüße, Volker