2011-01-30 25 views
8

Tôi có hai thư mục trong thư mục gốc: /dev/live.htaccess RewriteBase

Tất cả nội dung bên trong các thư mục này đều có đường dẫn tương đối như /css/style.css hoặc /js/home.js.

Tôi muốn có thể thay đổi thư mục gốc bằng cách sử dụng htaccess để đường dẫn tương đối trở thành /live/css/style.css v.v. hoặc /dev/css/style.css tùy thuộc vào phiên bản trang web tôi đang sử dụng.

Tôi đã cố gắng sử dụng đoạn mã sau vào .htaccess nằm bên trong thư mục /live:

RewriteEngine on 
RewriteBase /live/ 

Tôi cũng đã cố gắng sử dụng RewriteBase /public_html/live/.

Tuy nhiên, đường dẫn nội dung vẫn là http://domain.com/css/style.css thay vì http://domain.com/live/css/style.css khi tôi xem trang web.

Có ai có ý tưởng nào không?

Cảm ơn bạn.

EDIT >> Xin lỗi tôi nên giải thích rằng htaccess gốc của tôi có các quy tắc sau hướng về phía hai thư mục:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{HTTP_HOST} !^www\.domain\.com [NC] 
RewriteCond %{HTTP_HOST} ^((www\.)?([a-z]+)\.)domain\.com [NC] 
RewriteRule ^((www\.)?([a-z]+)\.)domain\.us$ /live/index.php?tag=%3 [L,P] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{HTTP_HOST} !^www\.domain\.com [NC] 
RewriteCond %{HTTP_HOST} ^dev.((www\.)?([a-z]+)\.)domain\.com [NC] 
RewriteRule ^((www\.)?([a-z]+)\.)domain\.us$ /live/index.php?tag=%3 [L,P] 
+0

Điều này là để chuyển đổi giữa trang sản xuất và phát triển, đúng không? Ví dụ: 'http: // domain.com/live/css/style.css' chỉ giải thích hay bạn có muốn các URL bên ngoài phản ánh trang web nào đang hoạt động không? Nếu sau này, tại sao? – outis

+0

Vâng, để có thể chuyển đổi giữa hai và giữ đường dẫn tệp tương đối. – Kit

+0

Đường dẫn bắt đầu bằng "/" là tuyệt đối, không tương đối. Vấn đề với việc sử dụng quy tắc viết lại là gì? – outis

Trả lời

10

RewriteBase cho phép bạn khắc phục vấn đề với cách URL được dịch sang nộp con đường và ngược lại. Nó không phải cho những gì bạn đang sử dụng nó cho. Sử dụng tiêu chuẩn RewriteRule

RewriteCond %{REQUEST_URI} !^/live 
RewriteRule ^(/?)(.*) /live/$2 
+0

Cảm ơn bạn đã trả lời. Tôi có thể sử dụng RewriteBase để thay đổi đường dẫn tệp tương đối như /css/style.css thành /live/css/style.css không? – Kit

+0

Như tôi đã nói, nó không dành cho những gì bạn muốn. 'RewriteBase' là để ánh xạ giữa các đường dẫn URL và đường dẫn tệp trong các giai đoạn cụ thể của việc xử lý yêu cầu Apache. Đọc tài liệu (được liên kết ở trên). – outis

Các vấn đề liên quan