我在mod_rewrite正则表达式中使用了匹配量词 {},如果量词匹配1或2次,则重写规则有效,如果匹配3次或更多次,则无效。为什么?
示例 .htaccess 文件:
这个有效(我需要 mydomain.com/download.ex):
示例 .htaccess 文件:
这个有效(我需要 mydomain.com/download.ex):
RewriteEngine On
RewriteRule ^download\..{1,2}$ /download.php [L]
但这并不起作用,出现500错误,只更改了2到3最大量词(我需要mydomain.com/download.exe):
RewriteEngine On
RewriteRule ^download\..{1,3}$ /download.php [L]
这很棒,但是这是真的吗?为什么会这样呢?
p.s. 版本:
root@andrey:/var/www/default/www# apache2 -v
Server version: Apache/2.4.7 (Ubuntu)
Server built: Jul 22 2014 14:36:38
root@andrey:/var/www/default/www# uname -a
Linux mydomain.com 3.13.0-24-generic #46-Ubuntu SMP Thu Apr 10 19:11:08 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
root@andrey:/var/www/default/www# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 14.04.1 LTS
Release: 14.04
Codename: trusty
\.{1,2}
只有在范围大于等于3时才会匹配.php
,所以你测试过这个解决方案了吗? - anubhavaRewriteRule ^download\..{1,3}$ /_download.php [L]
- Andrey