Tôi có các dự án công khai và riêng tư trên máy chủ web của mình. Tôi đặt tất cả những gì được công khai vào rootserver web, và tôi có một thư mục private
mà tôi chỉ có thể tiếp cận từ mạng cục bộ (được thiết lập bởi .htaccess trong đó).Quy tắc ghi đè Apache để chuyển hướng tất cả yêu cầu đến thư mục con chứa các quy tắc khác .htaccess và viết lại
Tôi chỉ muốn đặt mọi dự án riêng tư trong thư mục private
và xử lý yêu cầu tự động, nhưng muốn URL giống như chúng được phân phát từ webroot.
Ví dụ: nếu có private/project1
Tôi muốn sử dụng URL http://example.com/project1 để phân phối thư mục đó và không muốn thay đổi URL.
viết lại này rất đơn giản:
RewriteEngine On
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ private/$1
công trình, nhưng khi tôi có một private/project2
với một .htaccess
:
Options +FollowSymLinks
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /project2/
<Files .*>
Order Deny,Allow
Deny From All
</Files>
# Allow asset folders through
RewriteRule ^(assets/.+) - [L]
# Protect files from being viewed
RewriteRule ^(uploads.+) - [F,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
Options -Indexes
thì nội dung tĩnh sẽ xuất hiện, nhưng các liên kết bị phá vỡ. Tôi nên sửa đổi gì để hoạt động?
Ngoài ra nếu tôi có một private/project3
và duyệt đến http://example.com/project3/
không có vấn đề, nhưng khi tôi duyệt đến http://example.com/project3
(không có dấu /) URL sẽ được hiển thị như http://example.com/private/project3/
trong trình duyệt. Tại sao ? Làm thế nào tôi có thể tránh điều đó?
Chỉ cần thay đổi tài liệu HTTP của bạnRoot vào thư mục con. – Geoffrey
quá trình này đã kết thúc. nhưng làm cách nào tôi có thể phục vụ các dự án công cộng? Một thư mục 'private' đơn giản? Một công cụ' Alias / publicproject1/home/www/publicproject1' đơn giản dành cho một số người, nhưng tôi có ứng dụng Hành khách (redmine) mà dường như không hoạt động với Bí danh – kissgyorgy