@povisok_dmitriy

Как выдать 404 ошибку при добавлении лишних символов, точек и т.д?

Столкнулся с такой проблемой, что при добавлении лишних символов в url адрес ошибка 404 не вылазит. Использую ЧПУ и при добавлении к GET переменным лишних символов (mysite.ru/gorod/moskva,qwe&asas), знаков препинания и т.д ошибка 404 не выдается. Вот что у меня в htaccess:
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^(.+)/$
RewriteRule ^(.+)/$ /$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^gorod/([^/]*)/(.*)$ search.php?city=$1&value=$2 [L]
RewriteRule ^gorod/(.+)$ city.php?city=$1 [L]
RewriteRule ^login/(.+)$ login.php?value=$1 [L]
RewriteRule ^join/(.+)$ join.php?value=$1 [L]
RewriteRule ^help/(.+)$ help.php?value=$1 [L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTPS
RewriteRule ^index\.php$ https://mysite.ru/ [R=301,L]
RewriteCond %{http_HOST} ^www.mysite\.ru$ [NC]
RewriteRule ^(.*)$ https://mysite.ru/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(([^/]+/)*[^.]+)$ /$1.php [L]
RewriteCond %{REQUEST_URI} ^/index$ [OR]
RewriteCond %{REQUEST_URI} ^/index[.]+(\w+)$
RewriteRule . / [R=301,L]
AddDefaultCharset UTF-8
ErrorDocument 404 /errors.php

Есть ли решение в htaccess или нужно через php проверять есть ли что в mysqli_num_rows? если есть то все ок, если нет то рерайтить на 404? хотелось бы в htaccess :)
  • Вопрос задан
  • 424 просмотра
Пригласить эксперта
Ответы на вопрос 1
shambler81
@shambler81 Куратор тега htaccess
за это должно отвечать ваше ЧПУ
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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