2010-05-28 31 views
7

Tôi cần trỏ tên miền gốc của tài khoản lưu trữ của tôi vào thư mục con (joomla). Tôi muốn điều này là vô hình (tức là thanh địa chỉ trình duyệt không thay đổi). Ngoài ra, tôi cần điều này để làm việc khi người dùng nhấn vào thư mục gốc hoặc một thư mục con/thư mục con.Ẩn .htaccess Chuyển hướng từ/public_html/to/public_html/folder

Tôi đã thử các quy tắc sau, hoạt động riêng lẻ, nhưng tôi không thể làm cho chúng hoạt động cùng nhau.

Cái này hoạt động khi không có tệp con/thư mục con được quy định:

RewriteEngine On 
RewriteRule ^$ /joomla/ [L] 

Và cái này hoạt động khi một tệp con/thư mục con được quy định:

RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule (.+)$ /joomla/$1 [L] 

Tôi chỉ không thể tìm ra cách để kết hợp chúng lại.

Trả lời

3
RewriteEngine On 

RewriteRule ^(.*)$ /joomla/$1 [L] 

Nên hoạt động (chưa kiểm tra). Sự khác biệt chính giữa điều này và lần thử thứ hai của bạn là + vs *. Dấu + sẽ khớp với một hoặc nhiều, trong khi dấu * sẽ khớp với 0 hoặc nhiều hơn, do đó, điều này cũng sẽ hoạt động khi không có tệp/thư mục con nào được chỉ định.

+0

Điều đó phát ra lỗi máy chủ 500 có hoặc không có tệp/thư mục. Khi tôi thêm "RewriteCond% {REQUEST_FILENAME}! -f" nó hoạt động với tập tin/thư mục được chỉ định, nhưng ném một lỗi 500 mà không có. – ggutenberg

2

này nên làm như lừa:

RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /joomla/$1 [L] 

.* cũng sẽ phù hợp với một chuỗi rỗng. Bạn cũng có nhiều khả năng muốn thực hiện kiểm tra -d để đảm bảo rằng họ không truy cập thư mục tồn tại (mặc dù, suy nghĩ về điều này, điều này có thể gây rối với kết hợp /, tôi không biết).

+0

Làm việc cho tệp/thư mục, nhưng gốc không bao giờ chuyển hướng. Chỉ cần cho tôi một danh sách thư mục. Không có dòng -d nó ném một lỗi 500 khi nhấn gốc. – ggutenberg

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