Регулярное выражение в Apache mod_rewrite

#regex #apache #mod-rewrite

#регулярное выражение #apache #mod-переписать

Вопрос:

Я пытаюсь сделать это на apache mod_rewrite, используя регулярное выражение.

Проверьте запрашивающий URL.

Если оно отличается от .php или /, перепишите его в authorize.php?token=some_random_token

Запрашивающий URL-адрес (пример используемого здесь токена):

 https://example.com/section/video.mp4?token=eyJ0eXAiOiJKV1QiLCJhb
  

Apache mod_rewrite:

 RewriteCond %{REQUEST_URI} ^/(section)/.*$

RewriteRule !^((.*.php)|(.*/))$ authorize.php
  

Я застрял здесь. Какими должны быть требуемые коды регулярных выражений?
Заранее спасибо.

Ответ №1:

 RewriteRule !^((.*.php)|(.*/))$ authorize.php
                 ^
                 Searches for a literal asterisk
  

Помимо неуместного управляющего символа, вам не нужны все эти круглые скобки, поскольку вы ничего не фиксируете. Я ожидаю, что это должно сработать.

 RewriteRule !^(.*.php|.*/)$ authorize.php [QSA]
  

Что касается токена, флаг QSA переместит его из вашего исходного запроса в перезапись.