Tôi biết câu hỏi tương tự đã được hỏi trước đây nhưng tôi chưa tìm thấy bất kỳ câu trả lời thực sự cụ thể nào cho tình huống của tôi..htaccess trong nhiều môi trường
Tôi có một trang web ExpressionEngine chạy trên nhiều môi trường (địa phương, dev, sản xuất), và mỗi người trong số những môi trường cần quy tắc .htaccess khác nhau:
Tất cả các môi trường
- Remove index.php
- Đặt tệp 404
- Đặt 301 chuyển hướng
Phát triển
- Password Protect với htpasswd giao thức
- Force HTTPS
- Ngăn chặn công cụ tìm kiếm lập chỉ mục với X-Robots-Tag
Sản
- Force giao thức HTTPS
- Redirect tên miền phụ không www www
Local
- Không quy tắc độc đáo.
Tôi đã xem rất nhiều ví dụ về cách bạn có thể đặt môi trường cụ thể theo từng mô-đun. Giống như RewriteCond %{REQUEST_HOST} ^dev.myurl.com
cho mô-đun mod_rewrite và tricks like this cho các yêu cầu .htpasswd.
Nhưng điều tôi thực sự thích là một số cách để đặt biến môi trường toàn cầu, sau đó sử dụng lại các biến đó trong tệp .htaccess trên mỗi môi trường. Để sử dụng pseudo-javascript làm ví dụ, một cái gì đó như:
var local = 'mysite.local';
var development = 'dev.mysite.com';
var production = 'www.mysite.com';
// Global .htaccess rules
if(environment == local){
// Local environment .htaccess rules
}
if(environment == development){
// Development environment .htaccess rules
}
if(environment == production){
//Production envirotnment .htaccess rules
}
Bằng cách này tất cả các quy tắc môi trường cụ thể được tất cả nhóm lại với nhau, làm cho một tập tin thực sự trong sạch, và chỉ có một biến cần phải được thay đổi nếu một môi trường bị thay đổi.
Tôi đã thấy một vài tham chiếu để thay đổi cài đặt trong tệp cấu hình của Apache, nhưng rõ ràng đó không phải là tùy chọn khả thi nếu tôi đang xử lý máy chủ của bên thứ ba.
Vì vậy, đây có phải là suy nghĩ mơ ước trên bầu trời, hay nó có thể được thực hiện?
tôi đi qua [bài viết này] (http://www.thenerdary.net/post/20965499862/htaccess-environment), mà tôi chưa thử nhưng trông đầy hứa hẹn. – kgrote