Apache mod_rewrite中的正则表达式

时间:2019-04-14 02:30:34

标签: regex apache mod-rewrite

我正在使用正则表达式在apache mod_rewrite上尝试此操作。

检查请求的网址。

如果不是.php或/,则将其重写为authorize.php?token = some_random_token

请求网址(此处使用的示例令牌):

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

Apache mod_rewrite:

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

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

我被困在这里。所需的正则表达式代码应该是什么? 预先感谢。

1 个答案:

答案 0 :(得分:1)

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

除了放错位置的转义字符之外,您不需要所有这些括号,因为您没有捕获任何东西。我希望这应该可以。

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

对于令牌,the QSA flag会将其从您的原始请求移至重写。