Apache переписать для строки запроса значение не равно цифре

1

Я пытаюсь определить правильный синтаксис для Apache rewrite для отправки посетителей на другую страницу, если значение строки запроса не равно определенному формату.

URL 1: http://www.foo-bar.xqx/? Video = 123 (маршрут в одну сторону)
URL 2: http://www.foo-bar.xqx/? Video = fgh (маршрут по-разному)

Формат для значения должен быть всех цифр \d {0, x}, но ничего, что я пробовал до сих пор, похоже, возвращается, как я ожидаю. Самая последняя версия для переписывания выглядит следующим образом:

RewriteCond     %{QUERY_STRING}                 ^video=[^\d](\d{0,})$
RewriteRule     -                               /404.php$1 [NC,L]
Теги:
.htaccess

1 ответ

3
Лучший ответ

Используйте ! отклонить правило

RewriteCond     %{QUERY_STRING}  ^video=
RewriteCond     %{QUERY_STRING}  !^video=\d+$
RewriteRule     -                /404.php$1 [NC,L]

Это будет только переписывать запросы, которые имеют ?video=, но только если нет номера после =.

  • 0
    Большое спасибо за это. Я не уверен, что получаю именно то, что хочу, но это точно сработает.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню