2017-03-29 3 views
0

다음을 시도하고 있습니다..htaccess in 하위 디렉토리 - RewriteBase 사용 방법

나는

root 
    -dir1 
    -dir2 
    -dir3 

지금 내 DIR1 폴더에, 나는 다음의 .htaccess를 사용하는 사이트를 XXX.XXX.XXX.XXX IP 주소에서 우리의 네트워크에서 사용할 수 있습니다,이 디렉토리 구조를 가지고 내 사이트에

RewriteEngine On 
RewriteBase /dir1/ 

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

RewriteRule ^(.*)$ /index.php?path=$1 [NC,L,QSA] 

파일, 나는 "/ 세부 사항"또는 "/css/app.css"

문제는 같은이 "/"이전에 소스 및 페이지를 연결하고있는 그 링크는 항상 루트 f로 이동합니다. 앞의 "/"때문에 나이가 들었다.

모든 링크와 소스를 편집하지 않고도 하위 디렉토리에 링크를 "유지"하려면 어떻게해야합니까?

나는

RewriteBase/
RewriteBase /dir1 
RewriteBase /dir1/ 
RewriteBase dir1 

어떤 도움을 크게 감사를 사용하는 것을 시도했다. 감사!

+0

제거 슬래시처럼, 더 스크립트를 작동하는 경우 어쩌면, 추가 인수를주는'RewriteRule의^$ index.php를 경로 = $ 1 (*.)? [NC, L, QSA] – anubhava

+0

고마워요 @anubhava,하지만 그 중 하나가 작동하지 않았다 ... : ( – chaensel

+0

여기에 표시되지 않은 다른 규칙/구성이 없으면 작동하지 않습니다. – anubhava

답변

0

RewriteBase은 상대 경로 대상에만 적용되므로 아무 것도 변경되지 않습니다.

RewriteBase 지시어는 디렉토리 별 (htaccess로) RewriteRule의 지시에 사용하는 URL 접두사를 지정 대신 상대 경로.

대상이 이미 절대 /index.php이므로, RewriteBase을 생략 할 수 있습니다.


주어진 .htaccess에서 index.php가 요청한 파일을 반환합니다. 따라서이 경우 경로 앞에 적절한 디렉토리를 추가하면됩니다.

RewriteRule ^(.*)$ /index.php?path=/dir1/$1 [NC,L,QSA] 

또는이 대상에서

RewriteRule ^(.*)$ /index.php?path=$1&subdir=dir1 [NC,L,QSA]