Tôi có một số trang web: example.com
, example1.com
và example2.com
. Tất cả chúng đều trỏ đến thư mục /public_html
của máy chủ của tôi, đó là thư mục gốc Apache của tôi.Chỉ sử dụng HTTP Auth nếu truy cập vào một miền cụ thể
Tôi cần thêm gì vào tệp .htaccess
của mình để chỉ sử dụng xác thực http nếu người dùng đến từ example2.com
? example.com
và example1.com
KHÔNG được sử dụng xác thực.
tôi biết mình cần cái gì đó như
AuthType Basic
AuthName "Password Required"
AuthUserFile "/path/to/.htpasswd"
Require valid-user
Nhưng tôi chỉ muốn yêu cầu một mật khẩu nếu dùng đang truy cập example2.com
.
Sửa
Sử dụng một cách tiếp cận đề xuất trong một câu trả lời, tôi đã như sau trong tập tin .htaccess của tôi:
SetEnvIfNoCase Host ^(.*)$ testauth
<IfDefine testauth>
RewriteRule ^(.*)$ index2.php?q=$1 [L,QSA]
</IfDefine>
Tôi biết rằng các mô-đun mod_setenvif.c được kích hoạt (tôi xác minh với < IfModule> block), nhưng nó sẽ xuất hiện rằng "testauth" không bao giờ được xác định, bởi vì thử nghiệm của tôi để xác minh (chuyển hướng đến index2.php) không thực thi (trong khi nó đã được thực thi trong khối < IfModule> của tôi). Bất kỳ ý tưởng tại sao?
Nếu tất cả các lĩnh vực đang trỏ đến cùng một nơi, tại sao bạn muốn bảo vệ chỉ một trong số họ? Nếu bạn thực sự phục vụ nội dung khác nhau, tại sao không có cách tiếp cận saner giống như một thư mục trên mỗi miền? –
Tôi đang chạy một cài đặt Drupal nhiều trang trong thư mục/public_html của mình và tôi muốn tạo http xác thực chăn trên một trong các trang web, ngoài thông tin đăng nhập người dùng thông thường của trang web đó. –
Multisite của Drupal cho phép tôi chạy các trang web khác nhau trên cùng một tập các tệp PHP, nhưng với các cơ sở dữ liệu khác nhau (vì vậy nội dung khác nhau). Tôi có thể làm một cài đặt thứ hai trong một thư mục con, nhưng điều đó sẽ yêu cầu tôi phải duy trì các tập tin và mô-đun riêng biệt. –