我知道类似的问题以前已经被问过,但我没有找到任何特别适合我的情况的答案。
我有一个在多个环境(本地、开发、生产)上运行的ExpressionEngine网站,每个环境都需要不同的.htaccess规则:
所有环境
- 删除index.php
- 设置404文件
- 设置301重定向
开发环境
- 使用.htpasswd密码保护
- 强制使用HTTPS协议
- 使用X-Robots-Tag防止搜索引擎索引
生产环境
- 强制使用HTTPS协议
- 将非www子域名重定向到www
本地环境
- 没有特殊规则。
RewriteCond %{REQUEST_HOST} ^dev.myurl.com
,而对于.htpasswd要求,则可以使用类似这样的技巧。
但是我真正希望的是能够设置全局环境变量,然后在每个环境中在.htaccess文件中重复使用这些变量。以伪JavaScript作为例子,类似于:
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
}
这样所有特定于环境的规则都被分组在一起,使文件非常干净,如果更改环境,则只需要更改一个变量。
我看到了一些关于修改Apache配置文件中设置的参考资料,但显然,如果我正在处理第三方主机,则这不是可行的选择。
那么这是痴心妄想,还是可以实现的?