gpt4 book ai didi

.htaccess 和环境变量(如果没有 Env,则执行 X)

转载 作者:行者123 更新时间:2023-12-04 04:58:22 24 4
gpt4 key购买 nike

早上好

我的 .htaccess 文件中有 2 个条目,我想让它们更动态一些。

首先我有一个非 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 变量不等于 dev 或 local,并且域中没有 .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

我希望它只在与上面相同的条件下运行,所以:环境!=“本地”环境!=“开发”url 不包含 .staging.com

希望你们中的一些人能对这个问题有所了解。

非常感谢!

最佳答案

对于 mod_rewrite 部分:

RewriteCond %{ENV:environment} != "dev" && != "local"
RewriteCond %{HTTP_HOST} {DOESNT_CONTAIN .staging.com}

会变成:

RewriteCond %{ENV:environment} !dev 
RewriteCond %{ENV:environment} !local
RewriteCond %{HTTP_HOST} !\.staging\.com

对于 mod_auth 部分,您需要为主机和开发/本地设置一个环境变量:

SetEnvIfNoCase Host .staging.com noauth=true
SetEnvIf environment dev noauth=true
SetEnvIf environment local noauth=true

然后添加额外的Allow语句:

Allow from env=noauth

关于.htaccess 和环境变量(如果没有 Env,则执行 X),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16459613/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com