2010-01-17 3 views
1

다른 디렉토리에 다시 쓰기 규칙을 만들려고 시도했지만 불행히도 작동하지 않습니다.디렉토리로 mod_rewrite

쿼리 문자열의 첫 번째 단어가 admin 인 경우를 제외하고 현재의 모든 재 작성은 모든 것을 index.php 파일로 다시 보냅니다. 'admin'의 다시 쓰기 규칙은 admin.php이지만 실제로는 같은 디렉토리의 파일 대신 /var/www/html/website.com/admin/admin.php로 이동하려고합니다.

현재 .htaccess 파일입니다. 내가 관리자가 다른 디렉토리를 사용에 대한 재 작성 규칙을 변경하는 경우

RewriteEngine On 
RewriteRule ^(.*\/?).*(css|images|js/)+.*$ - [L] 
RewriteRule ^\/?admin\/?(.*)$ admin.php?url=$1 [QSA,L] 

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

..

RewriteRule ^\/?admin\/?(.*)$ /var/www/html/website.com/admin/admin.php?url=$1 [QSA,L] 

그것은 사이트를 나누기. 어떤 아이디어?

감사합니다.

답변

0

웹 경로가 필요한 반면 실제로는 매우 간단합니다. 시스템 경로를 사용하고 있습니다.

다음 줄을 시도해보십시오

RewriteRule ^\/?admin\/?(.*)$ /subfolder/admin.php?url=$1 [QSA,L] 
+0

내 디렉토리가 웹 경로 아래에 앉아있다. 웹 경로는 /var/www/html/website.com/web/이며 액세스하려는 경로는 /var/www/html/website.com/admin/web/ – Bennn

+0

입니다. 글쎄, 할 수 없습니다. 이렇게하는 유일한 방법은 웹을 통해 액세스 할 수있는 다른 파일을 만들고 액세스 할 수없는 파일을 포함시키는 것입니다. 이 [website.com/web/admin.php]처럼 :

+0

도움을 주셔서 감사합니다. 방금 디렉토리에 대한 심볼릭 링크를 만들었고 거기에 mod_rewrite를 추가했습니다. – Bennn

0

이 규칙을 시도해보십시오

RewriteRule ^admin($|/(.*)) admin/admin.php?url=$2 [QSA,L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule .* index.php?url=$0 [QSA,L]