@povisok_dmitriy

ЧПУ и страница 404, не срабатывает при неверном запросе?

Очень простой вопрос.
RewriteRule ^gorod/(.+)/category/(.*)$ view-product.php?city=$1&id=$2 [L]

При изменении gorod отдает страницу 404, а вот при изменении category (добавляем туда любые символы categцукory ) страница 404 не отдается, почему?
  • Вопрос задан
  • 183 просмотра
Пригласить эксперта
Ответы на вопрос 2
shambler81
@shambler81 Куратор тега htaccess
У вас в урле get запрос
а он в свою очередь не является частью урла
мало того вы не исключаете слеш из первой регулярки а следовательно она удовлетворяет любому значению включая категория с любым написанием.
В вашем случае нужно делать что -то вот такое
1. отделить гет запросы отдельно, так будет правильней
2. исклчите слеш в диапазоне
RewriteCond %{QUERY_STRING} (^|&)city\=\$1($|&)
RewriteCond %{QUERY_STRING} (^|&)id\=\$2($|&)
RewriteRule ^gorod/([^/].+)/category/([^/].+)/view\-product\.php$ /? [R=404]
Ответ написан
Комментировать
@povisok_dmitriy Автор вопроса
Решил проблему вот так:

RewriteRule ^gorod/(.+)/(.*)/(.*)$ view-product.php?city=$1&category=$2&id=$3 [L]

+обработчик на php и
header("HTTP/1.0 404 Not Found");
include 'errors.php';
exit();

Но все равно интересно, можно было в htaccess решить или нет? что не так делал? просто не силен в этом.....
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы