@gh0st_d0g

Как показать 404 страницу без редиректа сразу если ее нет?

Есть страница вида /catalog/category/tovar/bla-bla настроен редирект на страницу со слэшем. С этой страницы происходит редирект страницу вида /catalog/category/tovar/bla-bla/ и только тогда отдается 404 статус. Как сделать чтобы если страница не существует то без редиректа отдвать 404 статус?
Редиректы описаны следующим образом
RewriteCond %{REQUEST_URI} /[^/.]+$
RewriteRule ^(.*)$ https://localhost/$1/ [R=301,L]

RewriteCond %{QUERY_STRING} ^oid=(.*)
RewriteRule ^(.*)$ /$1? [R=301,L]

RewriteCond %{THE_REQUEST} /index\.php [OR]
RewriteCond %{HTTPS}       !on         [OR]
RewriteCond %{HTTP_HOST}   ^www\.      [NC]
RewriteRule ^(.*?)(index\.php|$) https://localhost/$1 [R=301,L]
  • Вопрос задан
  • 489 просмотров
Решения вопроса 1
shambler81
@shambler81 Куратор тега htaccess
нет смысла так делать, htaccess очень специфичекая штука и подзапрос будет очень сильно его тормозить.
во вторых еще раз, уже не знаю какой раз.
И яндекс и гугл смотрят только на последний код, всю цепочку они пропускают.
так что если это будет 301 301 301 404 то это 404
а как исключить файл из индекса это отдельная история тут более чем хватает инструментария.
я уже если честно устал
вот с этой шляпой бороться
RewriteCond %{THE_REQUEST} /index\.php [OR]
RewriteCond %{HTTPS}       !on         [OR]
RewriteCond %{HTTP_HOST}   ^www\.      [NC]
RewriteRule ^(.*?)(index\.php|$) https://localhost/$1 [R=301,L]

не выдумывайте велосипед и геморой себе на одно место.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@siptik
php developer, freelancer, Web-studio owner
htaccess отрабатывает перед выполнением динамического кода. Т.е. система не знает в реальности есть ли такая страница или нет.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы