2014-01-10 2 views
0

이 htaccess 구성을 사용하면 내 모든 .js 및 .css 또는 이미지 경로를 절대 경로로 설정해야합니다..htaccess 요청이 파일 또는 디렉토리 인 경우 절대 경로로 리디렉션

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ index.php?/$1 [L] 

어떻게 그렇게 내가 절대 경로가 될 필요가 없습니다 이미지, CSS 또는 JS 파일의 경로를 넣을 수 있습니다이 htaccess로 수정해야합니까?

가능합니까?

감사합니다.


이처럼 내 디렉토리 구조는 말 ADD :

<base href="/" /> 

:

root 
-- asset 
    -- images 
    -- css 
    -- js 

답변

1

그냥 페이지의 헤더에 상대 URI 기반을 추가하는 것이 더 쉬울 것입니다 그러나 htaccess와 모든 스크립트 및 s를 사용해야하는 경우 tyles는 조건으로 트랩을 할 수있는, 같은 장소에 있습니다

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_URI} !^/path/to/css 
RewriteRule ([^/]+\.css)$ /path/to/css/$1 [L,NC] 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_URI} !^/path/to/js 
RewriteRule ([^/]+\.js)$ /path/to/js/$1 [L,NC] 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_URI} !^/path/to/images 
RewriteRule ([^/]+\.(png|jpe?g|gif))$ /path/to/images/$1 [L,NC] 

편집 :

경우 JS/CSS/이미지의 경로 모두 같은 장소에서, 당신이 할 수 있습니다 규칙을 조합 해보십시오.

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_URI} !^/assets/ 
RewriteRule ^(css|js|images)/(.*)$ /assets/$1/$2 [L,NC] 
+0

답변 해 주셔서 감사합니다. 하지만 정규 표현식은 내 뇌를 불게 만든다. 이 줄에 대해 나에게 설명해 줄 수 있니? 'LewterCond % {REQUEST_URI}! ^/path/to/css RewriteRule ([^ /] + \ .ssss) $/path/to/css/$ 1 [L, NC]' 더 많은 정보를 내 질문. –

+0

@TikasMamed'! ^/path/to/css'는 "'/ path/to/css'로 시작하지 않는다는 것을 의미합니다. 그리고'([^ /] + \. css) $'는 " .css'로 끝나는 것을 의미합니다. 자신의 dir 구조를 감안할 때'/ path/to /'를'/ assets /'로 대체하면됩니다. –

+0

왜 js와 이미지에 대해 이러한 라인을 반복해야합니까? 'RewriteCond % {REQUEST_FILENAME}! -d RewriteCond % {REQUEST_FILENAME}! -f' –

관련 문제