2009-12-06 2 views
1

'기본'다시 쓰기 규칙을 설정하여 이전 다시 쓰기 항목과 일치하지 않는 항목을 잡으려고합니다. 나는이 시도했다 :기본 Apache RewriteRule 항목 설정

RewriteRule ^(.*)/?$ index.php?url=$1 [L] 

그러나 반환되는 출력은 다음과 같습니다 이상적으로

url = index.php 

그들은 내 웹 로그에 저장됩니다, 그래서 내가 원하는 것은 모든 GET 값 'URL'에 첨부하는 것입니다 . 누구든지이 문제를 해결하는 방법을 제안합니까?

답변

3

생략 불필요한 괄호 때마다 당신은 할 수 있습니다

RewriteRule .* index.php?url=$0 [L] 

'index.php'를 제외하려는 경우 :

RewriteRule ^(?!index\.php).* index.php?url=$0 [L] 
+0

고맙습니다! – Spoonface

+0

이것은 Apache 1.x에서는 작동하지 않습니다. – Gumbo

+0

Apache 1.x는 PCRE 라이브러리를 사용하지 않습니다. – Geert

3

당신은 규칙에서 대상 제외해야합니다 제거

RewriteCond $1 !=index.php 
RewriteRule ^(.*)/?$ index.php?url=$1 [L] 
1

시도를 슬래시 : 정규 표현식에서

RewriteRule ^(.*)$ index.php?url=$1 [L]