Спасибо за ссылки, обнаружил и новую инфу. Но у меня с robots.txt все в норме, все роботы кроме yandex не заходят на старые страници, а
скрипт Yandex'a говорит что "/*?*" заблокировано для индексации, но тем не менее его бот гуляет по этим страницам. Кроме того, все поисковики для удаления ссылок советуют запретить индексацию и поставить HTML error 404 на эти ссылки.
Итак решение проблемы для ссылок вида:
1. index.php?
productID=13&PHPSESSID=7f88237fbcd233a7a02dccc8cb3db549
2. index.php?
categoryID=14&
offset=16&PHPSESSID=7f88237fbcd233a7a02dccc8cb3db549
3. index.php?
aux_page=aux1&PHPSESSID=7f88237fbcd233a7a02dccc8cb3db549
Файл index.php (тот, что в корне сайта)
Строка 78:
вместо$query = "SELECT id, link"
. "\n FROM #__menu"
. "\n WHERE menutype = 'mainmenu'"
. "\n AND published = 1"
. "\n ORDER BY parent, ordering"
;
$database->setQuery( $query, 0, 1 );
Вставляем:
$categoryID=strval( strtolower( mosGetParam( $_REQUEST, 'categoryID') ) );
$productID=strval( strtolower( mosGetParam( $_REQUEST, 'productID') ) );
$offset=strval( strtolower( mosGetParam( $_REQUEST, 'offset') ) );
$aux_page=strval( strtolower( mosGetParam( $_REQUEST, 'aux_page') ) );
if ( $categoryID=='' && $productID=='' && $offset=='' && $aux_page=='' ) {
$query = "SELECT id, link"
. "\n FROM #__menu"
. "\n WHERE menutype = 'mainmenu'"
. "\n AND published = 1"
. "\n ORDER BY parent, ordering"
;
$database->setQuery( $query, 0, 1 );
}
Результат: выдается страница 404 Jooml'ы + код 404 при обращении к странице
Примечание: 1. Для каждого типа ссылок, нужно добавлять отдельный фильтр, а также убедится, что такой ($categoryID, $productID, $offset, $aux_page) переменной нет в файле index.php
2. Данный хак устанавливает страницу 404, только в случае, когда:
а) в ссылке нет переменной
optionsб) в ссылке нет переменной
Itemidв) в ссылке присутствуют одна любая непустая переменная из:
categoryID, productID, $offset, $aux_page (можете добавить свои)