Странные URL в логах сервера

B
На сайте с 01.11.2008
Offline
119
244

Просмотривал ошибки в логах сервака, заметил, что Гугл заходит на подобные ссылки, пример

/ru/forum/development/web

Дублируется два раза, отдает код 200, грузится та же страница, для решения проблем такого вида существует правило редиректа? Каноникалы сложно настроить на устаревшем движке, все в костылях.

Сталкивался кто нибудь? Забить?

З.ы. на ссылку выше наведите, или в буфер скопируйте, поймете

S
На сайте с 30.09.2016
Offline
469
#1
boav:
правило редиректа

По наличию "http" в REQUEST_URI или QUERY_STRING, в зависимости от ситуации. Но лучше движок исправить.

Отпилю лишнее, прикручу нужное, выправлю кривое. Вытравлю вредителей.
B
На сайте с 01.11.2008
Offline
119
#2

Проверил, REQUEST_URI возвращает такой же дублирующийся адрес, QUERY_STRING переменные, теоретическки с помощью QUERY_STRING можно решить, протестил, даже у Яндекса и Гугла такой косяк срабатывает, если скопировать в конец URL

UPD, нашел в анналах интернета решение для себя

если заканчивается на .html решается так:

RewriteEngine On

RewriteRule (.+?)\.html.+$ https://%{HTTP_HOST}/$1.html [L,R=301]

Если на другое, нужно править под себя.

M
На сайте с 04.12.2013
Offline
223
#3

Может, сами где-то такие ссылки генерите. Ищите и исправляйте. Если найдете и исправите, у ПС оно скорее всего потом само отвалится. Но 200 для таких адресов ненорм. Поэтому лучше тоже исправляйте.

Домены и скрипт для коротких ссылок: https://u75.ru/domains-for-shortcuts
B
На сайте с 01.11.2008
Offline
119
#4

Спасибо всем, для себя решение нашел, но много рандомных сайтов проверил у многих косяк такой, среди внутренних ссылок нет таких косяков, гугл где то их достал) В примере даже у этого форума этот косяк работает, и я сгенерил новую страницу дубль с оригинальным каноникалом

M
На сайте с 04.12.2013
Offline
223
#5

P.S. Яша/гоша тут не показатель. Они на это чихать хотели. Но остальных, естественно, могут дрючить за это.

Да, возможно, ваш сайт позволяет принимать произвольную строку параметров. Если не используете utm-метки и т.п., можно ужесточить форматы используемых адресов, учитывая в них в том числе и строку параметров.

---------- Добавлено 02.12.2019 в 20:32 ----------

boav:
В примере даже у этого форума этот косяк работает, и я сгенерил новую страницу дубль с оригинальным каноникалом
Даже если сайт отдает 200 для таких адресов, он по идее не должен генерить такой же тупой каноникал. Хотя бы это исправьте.
B
На сайте с 01.11.2008
Offline
119
#6
miketomlin:
P.S. Яша/гоша тут не показатель. Они на это чихать хотели. Но остальных, естественно, могут дрючить за это.

Да, возможно, ваш сайт позволяет принимать произвольную строку параметров. Если не используете utm-метки и т.п., можно ужесточить форматы используемых адресов, учитывая в них в том числе и строку параметров.

Да, давно уже сделал так чтобы левые переменные не подставляли, нужно выписать все переменные используемые на сайте и в массив запихать, и проверку делать, рабочий пример может пригодится кому:

$goodparams = array_flip(array('category', 'source', 'new', 'ran', 'top', 'url', 'word', 'best', 'hits', 't')); // и т.д. массив "хороших" параметров

foreach ($_GET as $param => $value) {

if (!isset($goodparams[$param])) {

header("HTTP/1.0 404 Not Found");

include($_SERVER['DOCUMENT_ROOT'].'/404.shtml');

//безболезненно отдаем 404 ошибку,

//что отнюдь не мешает нам показать юзерю контент

exit();

}

}

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий