2014-04-18 2 views
1

을 구분 기호 내 .htaccess 파일입니다RewriteRule의 : 나쁜 플래그는 다음

ErrorDocument 404 /index.php?cmd=notfound 
# Maintenance 
RewriteCond %{REMOTE_ADDR} !^(Redacted) 
RewriteRule^maintenance.php [L] 

RewriteEngine On 
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-l 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(\w+)(?:/(\w+))?(?:/(\w+))?(?:/(\w+))?(?:/(\w+))?(?:/(\w+))?/?$ route.php?1=$1&2=$2&3=$3&4=$4&5=$5&6=$6 [L] 

그것은 작동 오류가 그러나 문제가 : 마지막 RewriteRule의는 인수에 공백을 허용하지 않습니다. 함자 이미 당신에게 솔루션을 말했다처럼

RewriteRule: bad flag delimiters 
+1

'[\ w \] +'또는'[\ w \ s] + '를 사용하십시오. – HamZa

+0

감사합니다. – Zapk

답변

1

Zapk, 그것은 소리 :

가 나는 [\w ]+\w+을 대체 할 누군가가 말했지만, 나는 오류가 발생하는 것을 수행 할 때 한 예, \s에 공백이 일치합니다 (대부분의 정규 표현식 에서처럼).

완성을 위해, Apache는 PCRE를 정규식 검색에 사용합니다. 이것은 PCRE가 가장 완전한 기능을 갖춘 엔진 중 하나이기 때문에 웹 관리자에게 좋은 소식입니다. 따라서 인터 웹 주위에 떠있는 아파치 리다이렉트의 평범하지 않은 예제를 넘어서는 많은 것들을 할 수 있습니다.

시작으로

, 나는 웹 주위에 많은 예제 또한 치료의 불필요한 \/\/ 의 큰 수프를 만드는 동안, 당신이 당신의 정규식에서 이스케이프 슬래시를 사용하고 있는지 확인하기 위해 눈에 기쁨이라고한다 비 캡처 그룹을 사용하고 있는지 확인하십시오.