В конце URL появляется какая то дребедень

12
mff
На сайте с 21.02.2008
Offline
266
mff
#11

Всё сделал, огромное спасибо друзья за подсказки, всем по +. Ваш опыт неоценим!

Сейчас делаю новую страничку 404.php, старая морально устарела. Вот как у меня получается, если в конце ссылки приписать фигни какой нибудь (сриншот во вложении). URL остается тот же, подгружается страничка 404.php Всё ли правильно? Или должно на страничку 404.php закидывать и в URL быть - http://site.ru/404.php ?

С уважением, Александр.

png 404.png
S
На сайте с 30.09.2016
Offline
469
#12

Всё правильно, лузер юзер видит надпись "Ничего не найдено", смотрит в адресную строку и видит, что он лажанулся с адресом.

Отпилю лишнее, прикручу нужное, выправлю кривое. Вытравлю вредителей.
M
На сайте с 04.12.2013
Offline
223
#13
mff:
Извините за глупые вопросы, просто хотелось узнать как другие бы поступили в данной ситуации.

Вариант 1 – не порождать дубли.

Вариант 2 – их закрывать (в роботс, указанием канонической и т.п.)

У вас первый, лучший, вариант, но кривоватый, т.к. придется ставить затычку в каждом частном случае. А я вот, к примеру, определил конкретные сущности (коллекцию статей и статью) в БД, «сказал», что мне нафиг не нужны параметры для отдельной статьи, и получил, что нужно: http://g09.ru/articles/my-first-article (дубли вроде ваших автоматом закрываются 404-ой, некоторые альтернативные тайпин адреса, например с тэйлинг слэшем, корректируются 301-ым редиректом). Но в принципе иногда нужно подтягивать и логику конкретного приложения, например при выводе коллекции (списка статей) я использовал такой код:


//меняем значение параметра 0<-->1
rotate01();
//отсеиваем некорректные значения параметра
if ($pn==0||$pn>$pc) error(404);
...

Что дает соотв. результат:

/articles – OK 200 – результат замены 0-->1 (0 – это когда нет параметра);

/articles?p=1 – Error 404 – результат замены 1-->0 и первого простого условия ($pn==0);

/articles?p=2 – OK 200;

/articles?p=100500 – Error 404.

Хотя, если вы сами не программируете, все это вам не оч. интересно 🍿

Домены и скрипт для коротких ссылок: https://u75.ru/domains-for-shortcuts
mff
На сайте с 21.02.2008
Offline
266
mff
#14

miketomlin, спасибо! А я думал как мне исправить вот такие странички: http://site.ru/channel.php?ch= или http://site.ru/channel.php?ch=9999999999999999999

Я чуть позже буду на этом сайте прикручивать ЧПУ. А пока мне нужно было затычки расставить. Программирую сам. Может где то кривовато, но сам :-) С ув.

S
На сайте с 30.09.2016
Offline
469
#15
mff:
как мне исправить вот такие странички: http://site.ru/channel.php?ch= или http://site.ru/channel.php?ch=9999999999999999999

Вы же вытягиваете откуда-то информацию в соответствии с гет-параметром? Ну так есть общее правило: если этому параметру ничего не соответствует, например, отсутствует статья с таким номером, то отдаётся ответ 404.

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

mff, есть понятие роута (маршрута) с адресной маской, в которой может учитываться в том числе и строка параметров. Достаточно указать, что после ch= должно быть натуральное число, и первый вариант уже не будет подпадать под маршрут. На кол-во цифр тоже можно наложить ограничение в маске, чтобы даже не пытаться работать с такими большими числами. После «неудачного» обхода всех маршрутов роутер автоматом должен инициировать ошибку, дефолтная обработка которой должна заключаться в выдаче 404-ой. В моем примере выше я использовал простой REST-каркас. В REST используются достаточно простые и однообразные форматы адресов, поэтому может хватить и одной общей маски, отсеивающей явно некорректные адреса, например вот реальный фрагмент общей маски из используемого мной каркаса:

(\\?p=[1-9]\\d{0,9})?

Вопрос в конце означает, что подмаска в скобках описывает необязательную часть адреса, т.е. либо все, либо ничего: промежуточный вариант вроде p= некорректен по определению. Именно такие строгие правила помогают избавляться от разнообразных дублей. Вот можете поэкспериментировать с общей маской: http://g09.ru/gency-demo (только не меняйте первый слаг, чтобы оставаться в рамках данной демки, а просто дописывайте к нему доп. слаги и/или параметр p, например /gency-demo/test?p=9999999999).

mff
На сайте с 21.02.2008
Offline
266
mff
#17

Ура! Яндекс не заставил себя ждать:

Спасибо ребят. С ув.

12

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