@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
за это должно отвечать ваше ЧПУ
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽