2011-08-31 5 views
0

처음 RewriteRule의를 사용하여, 그래서 나는 htaccess로 재 작성 규칙은

RewriteRule ^details/(.*)/(.*)$ /details.php?id=$1&name=$2 [NC] 

을했지만 이미지가 작동하지 않습니다 예를 들어 등 이미지, JS, 몇 가지 문제가있다. 그리고 경로를 찾으려고 할 때 details/3367/images/coins-icon.png

해결 방법이 있습니까?

나는
RewriteRule ^details/(.*)/images/(.*)$ /images/$1 

을 시도하지만 작동하지 않을 것 같다.

답변

1

재 작성에서 기존 파일과 디렉토리를 제외 :

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 

는 또한 사용한다 <base href> 또는 절대 URL의 상대 URL을 기반으로 이미지 파일을 액세스 브라우저를 방지하기 위해 (슬래시 /로 시작).

페이지 /details/456/을보고 페이지에 images/456/foo.jpg 이미지가있는 경우 브라우저는 /details/456/images/456/foo.jpg을 검색합니다. 이를 방지하려면 <base href> 또는 절대 URL (/images/456/foo.jpg)을 사용하십시오.

0

작성한 규칙은 정확하지만 원하는 것은 아닙니다.

RewriteRule ^details/(.)/(.)$ /details.php?id=$1&name=$2 [NC] 

패턴의 (.)은 임의의 단일 문자와 일치하여이를 캡처합니다. 다음과 같이 여러 문자를 캡처하고 싶을 것입니다 :

RewriteRule ^details/(.+?)/(.+?)$ /details.php?id=$1&name=$2 [NC] 

+는 컴파일러가 하나 이상의 일치를 원한다는 것을 알리는 것입니다. 가능한 한 적은 문자를 캡처하도록 컴파일러에 알립니다 (다음 /보다 더 진행하지 못하도록)