Код 404 и 301 редирект

P
На сайте с 02.07.2007
Offline
91
1073

Всем привет.

Случилось так, что когда-то в неком далеком для ИМ был выбран вариант урлов со слэешем на конце, т.е. настроили обязательную подстановку / в конце урла при помощи 301 редиректа.

Заметил, что для неправильно набранного урла не отдается 404 код, а идет сначала 301 редирект на 404 страницу:

site.ru/sdf = 301 site.ru/sdf/ = 404

Подскажите плиз можно ли как-то исправить эту дурацую ситуацию?

K0
На сайте с 01.09.2016
Offline
66
#1

Попробуйте добавить условие в .htaccess:

RewriteCond %{REQUEST_FILENAME} -d
А вообще покажите какой код у вас редиректит.
P
На сайте с 02.07.2007
Offline
91
#2

Я как понял, что проблема в том, что сначала идет работа htaccess, в котором идет редирект на слэш и только затем идет выполнение php кода, который определяет есть ли такая страница.

RewriteRule ^category/([^/]+)$ http://%{HTTP_HOST}/category/$1/ [R=301,L,QSA]


---------- Добавлено 13.09.2016 в 15:11 ----------

Или это ни на что не влияет и не стоит париться?

Посмотрел у других сайтов-монстров, там все также - сначала 301 на слэш, а потом 404.

R
На сайте с 08.05.2008
Offline
222
#3

Это норма и ни на что не повлияет, на многих сайтах также

Тема по продвижению сайтов. От 30 000 р. со ссылочным и копирайтингом!. (/ru/forum/801720) Темка по аудитам и консультациям. Стоимость аудита 9 000 рублей. (/ru/forum/622569) skype rastijko
K0
На сайте с 01.09.2016
Offline
66
#4

paqwerty, каталоги вида /category/что-то-там/ в файловой системе существуют?

Если поставите строчку которую я приводил выше перед своим RewriteRule, то оно начнет срабатывать только если указанный в запросе каталог существует.

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

paqwerty, это нормально. Во многих продвинутых движках управление завершающими слешами вынесено в .htaccess или др. подобный конфиг (прежде всего из-за того, что такие движки изначально допускают оба типа адресации, и со слешем, и без). Более того часто даже внутри движков делаются какие-то корректирующие редиректы, прежде чем идет детект на валидность адреса, поэтому не парьтесь – все ОК.

Домены и скрипт для коротких ссылок: https://u75.ru/domains-for-shortcuts
P
На сайте с 02.07.2007
Offline
91
#6

Нет, каталогов аких нет, это динамические страницы, поэтому не сработает. Спасибо.

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

Понятно, что каталогов нет, т.к. вы сами реализовываете соотв. редирект, хотя kom09 прав, каталоги могут мешать, даже если вы уберете директивы для редиректа из .htaccess – это может потребоваться отдельно отключать. Но я бы, как выше написал, не парился. Вот пример (только здесь обратный редирект используется, т.е. на адреса без слешей на конце):

http://g09.ru///Articles///My-First-Article///

То же самое с недействительным адресом:

http://g09.ru///Articles///My-First-Article///Test///

Тут вообще по идее должно быть два редиректа, т.к. за корректировку завершающих слешей отвечает .htaccess, а за верхний регистр и множественные «внутренние» слеши – внутренний фильтр. Двиг. там элементарный, но он копирует аналогичное поведение более продвинутых движков.

K0
На сайте с 01.09.2016
Offline
66
#8

paqwerty, тогда, если все еще хочется избавиться от лишнего редиректа, можно реализовать перенаправление с добавлением слеша в php-скрипте, который ваши категории обрабатывает, а из htaccess убрать. :) Только стоит ли оно того?! :)

P
На сайте с 02.07.2007
Offline
91
#9

Всем спасибо за советы и помощь. Решил забить на это дело.

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