2014-10-31 3 views
1

첫째,이 문제를 해결하기 위해 많은 노력을 기울 였지만, 저를 위해 작동시키지 못했습니다.RewriteCond 패턴 그룹이 일치하지 않습니다.

저는 codeigniter를 프레임 워크로 사용하고 있으며 htaccess는 훌륭하고 잘 작동하지만 클라이언트는 시스템에서 확인 파일을 선택하려고합니다 (Google 확인 자료). 그래서 어리석게 생각

RewriteEngine on 
RewriteCond $1 !^(index\.php|assets|img|css|js|sitemap*|robots\.txt) 
RewriteRule ^(.*)$ index.php?/$1 [L] 

이 작동 것이다 :

RewriteEngine on 
RewriteCond $1 !^(index\.php|assets|img|css|js|sitemap*|robots\.txt|*.html) 
RewriteRule ^(.*)$ index.php?/$1 [L] 

을하지만 실제로 나에게 500 오류를 제공 파일이 google1234324324232.html 같은 이름을 지정하는 것은

이 내가 현재 가지고있는 것입니다 , 그리고 와일드 카드와 함께 할 것 같아요, 나는 정규식 패턴 일치를 시도했지만 항상 실패한 것 같습니다.

답변

0

*은 그렇게 작동하지 않습니다. 0 개 이상 일치시키고 자하는 문자 뒤에 와야합니다. 마찬가지로 sitemap*은 아마도 당신이 생각하는대로하지 않을 것입니다. sitemap*는 다음 중 하나를 일치 :

sitema 
sitemap 
sitemapppppppppp 

*p에 적용하기 때문이다. *.html의 경우 *에는 적용 할 문자가 없으므로 정규 표현식 오류가 발생합니다. 원하는 항목 :

.*\.html 

.은 "무엇이든"을 의미합니다.

관련 문제