3
mod_rewrite regex에서 match quantifier {}를 사용하고 quantifier가 1 회 또는 2 회 일치하면 규칙 작업을 다시 작성하고 3 회 이상 일치하면 작동하지 않습니다. 왜?Apache mod_rewrite 정규식 제한 최대 일치 수량?
예 htaccess로 파일 :
이 작품 (내가 요구 mydomain.com/download 전.) :
RewriteEngine On
RewriteRule ^download\..{1,2}$ /download.php [L]
그러나이 작동하지, 만 3 최대 2 변경 500 오류 정량 (난 필요 mydomain.com/download EXE합니다.) :
RewriteEngine On
RewriteRule ^download\..{1,3}$ /download.php [L]
그것은 환상적이다,하지만이 실제 . 왜 그런가?
p.s. 버전 :
[email protected]:/var/www/default/www# apache2 -v
Server version: Apache/2.4.7 (Ubuntu)
Server built: Jul 22 2014 14:36:38
[email protected]:/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
[email protected]:/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}) 작업 괜찮지? – Andrey
범위가 3 이상인 경우에만'\. {1,2}'는'.php'와 일치하지 않으므로'.php'와 일치합니다. 솔루션을 테스트 해 보셨습니까? – anubhava
고맙습니다. 문제를 이해했습니다. 그러면 download.php의 이름을 바꾸는 것이 더 쉬울 것입니다. _download.php'RewriteRule^download \ .. {1,3} $ /_download.php [L]' – Andrey