2010-08-07 12 views
1

RewriteRules에 문제가 있습니다.htaccess RewriteRule 문제

나는 현재이 규칙을 사용하고 있습니다 : 그들을위한

http://example.com/abcdefg

하지만하지 :

RewriteRule ^([^/.]+)/?$ index.php?clip=$1 

이 다음과 같은 링크에 대한 잘 작동을 슬래시 이후의 값은 어디 $_GET['clip']입니다 다음과 같은 도트 문자 :

http://example.com/abcdefg.png

RewriteRule이 어떻게 그러한 링크에서 작동하도록 변경해야합니까?

답변

1
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([^/]+)/?$ index.php?clip=$1 
파일이 있다면 당신은 내가하는 방식으로 디렉토리 구조를 구성하는 데 조언을 할 수있는 가능성이있는 경우는 ... 을 확인 읽어 여분의 디스크가 발생할 수 있기 때문에이 기술을 제안하지 않을

그 아파치는 디렉토리에서 무엇을 해야할지 말할 수 있습니다. 내 프레임 워크의 예 :

# skip whitelisted directories 
    RewriteRule ^(test|skin|stylesheets|images|javascripts|favicon|robots\.txt|index\.php) - [L] 
    RewriteRule ([-_\w\/]*) index.php?p=$1 [NE,NC,QSA] 
0

"/"또는 "."이 포함되지 않은 문자열은 모두 일치합니다. 당신은 확장자를 포함하는 경기를하려는 경우, 당신은 사용할 수 있습니다

RewriteRule ^([^/]+)/?$ 

당신이 그것에 대해 걱정하지 않는 경우 :

RewriteRule ^([^/.]+) 
+0

답변과 함께 jordanstephens가 완벽합니다. 감사! – Codecat

1

시도 코드 :

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([^/]+)/?$ index.php?clip=$1 

이 뜻을 실제로 서버에있는 파일을 무시하지 못하게하십시오. 따라서 /abcdefg.png이 존재하는 한 http://example.com/abcdefg.png이 작동합니다.

또한 재 작성 규칙에 사용 된 정규 표현식을 약간 변경해야하며이를 방지하기 위해 .을 삭제했습니다.

+0

코멘트를 읽었습니다. nhnb에 추가했습니다. 감사! :) – Codecat