2010-06-03 7 views
0

정규식을 검사했는데 모두 일치하지만 mod_rewrite에서 작동하지 않습니다.Mod_rewrite 조건이 작동하지 않습니다.

내가

http://www.system.com/chips/intel?c=xxx

읽고 싶습니다

http://www.system.com/chips/intel/xxx

을 나는이 :

RewriteCond %{REQUEST_URI} (c=.*)$
RewriteRule (/([^/]+)/?).*?c=(.*) http://%{SERVER_NAME}/$1/$2/ [L]

그리고 오류가 발생했습니다. 무슨 일 이니? 당신이 "QSA"를하지 않는 한 취득한다 RewriteCond 생각하지 마십시오

답변

1

귀하의 정규 표현식은 URL과 일치하지 않습니다. 당신은 그것을 가지고 :

  • 1 군 경기 /chips/
  • 2 군 경기 chips
  • 그룹 3 경기 xxx

당신은 아마 같은 것을 원하는 :이

RewriteRule ^/([^/]+)/([^/]+)\?c=([^&]*) http://%{SERVER_NAME}/$1/$2/$3 [R=301] 
+0

입니다 올바른 정규식하지만 .htaccess와 여전히 일치하지 않습니다. grrrr – frio80

+1

@frio .htaccess와 일치하지 않습니다. .htaccess에있는 규칙을 다시 작성하면 경로가 제거됩니다. 루트에 있다면 RewriteRule^([^ /] +)/([^ /] +) \? c = ([^ &] *) ... – Artefacto

관련 문제