2011-12-23 31 views
6

Tôi gặp một số khó khăn với các quy tắc mod_rewrite. Tôi muốn viết lại bất kỳ yêu cầu trên.htaccess ghi đè từ thư mục con vào thư mục gốc

www.example.com/dev/* 

để

www.example.com/* 

Ví dụ khi địa chỉ yêu cầu là www.example.com/dev/index.php, phản ứng nên www.example.com/dev/index.php, và không chỉ là địa chỉ có vẻ như nó là từ gốc thư mục, nhưng nó thực sự đang sử dụng index.php từ thư mục gốc.

Tôi đã thử các mod_alias mà làm việc

RedirectMatch (^/dev/)(.*) http://www.example.com/$2 

Nhưng nó không phải là có thể áp dụng điều kiện địa chỉ ip với mod_alias, vì vậy tôi vẫn cần một giải pháp với mod_rewrite.

Có ai chia sẻ kiến ​​thức nào không? Cảm ơn.

Trả lời

8

Làm thế nào về một cái gì đó như thế này?

RewriteRule ^dev/(.*)$ $1 

Điều này cần phải nằm trong thư mục gốc hoặc được áp dụng cho cấu hình Apache chính (không phải trong .htaccess).

Quy tắc thông thường về chuyển hướng .htaccess áp dụng - bao gồm RewriteEngine on, Options FollowSymLinksAllowOverride FileInfo được bao gồm ở đâu đó. Chi tiết đầy đủ tại http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html#rewriterule.

+0

Không, không may mắn. Tôi tự hỏi nếu nó có bất cứ điều gì để làm với các quy tắc khác được sử dụng để ngăn chặn truy cập vào một số loại tập tin. Vì vậy, tôi đặt quy tắc mới này trong dòng đầu tiên ngay bên dưới 'RewriteBase /', nhưng vẫn không hoạt động. – vicch

+0

@vicch Thử thêm cờ '[L]' tức là thay đổi quy tắc thành 'RewriteRule^dev /(.*)$ $ 1 [L]' để nó không xử lý các quy tắc khác –

+0

Thật không may, nó cũng không hoạt động. – vicch

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