1
上午,的.htaccess和环境变量(做X,如果信封心不是)
我有2项在我的.htaccess文件,我想给他们多一点活力。
首先,我有一个非www到www。重定向
<IfModule mod_rewrite.c>
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} !^www\..+$ [NC]
RewriteRule^http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>
但是,我想它下面
<IfModule mod_rewrite.c>
RewriteCond %{ENV:environment} != "dev" && != "local"
RewriteCond %{HTTP_HOST} {DOESNT_CONTAIN .staging.com}
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} !^www\..+$ [NC]
RewriteRule^http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>
所以基本上有条件的作用,我想了www。重定向如果env变量不等于开发或本地,并且域没有.staging.com在其中
我将如何去排序呢?
其次,这是几乎相同的问题,我有一些认证
Order deny,allow
Deny from all
AuthType Basic
AuthUserFile /var/www/vhosts/{HTTP_HOST}/httpdocs/.htpasswd
AuthName "Protected Area"
require valid-user
Allow from 127.0.0.1
Satisfy Any
我想这只能在相同的条件之上,从而运行: 环境=“本地” 环境!=“开发” 网址不包含.staging.com
希望你们中的一些人可以解决这个问题,请。
非常感谢!
你能解释一下“SetEnvIfNoCase Host .staging.com noauth = true”在做什么,不太明白吗? – Owen 2013-05-09 20:07:10
@OwenMelbourne查看[mod_setenvif](http://httpd.apache.org/docs/2.2/mod/mod_setenvif.html#setenvif)文档。它设置了一个环境变量,并且由于'Allow from env'只检查环境变量**是否存在**,所以您必须使用'SetEnvIf'来检查'environment'变量的值。 – 2013-05-09 21:09:17