我使用的是Apache 2.4+,如果网址包含“#34; staging"在里面。那部分非常简单。更棘手的部分是我想要覆盖密码保护并使一个页面可公开访问(它是健康检查服务将用于检查网站的页面)。
以下是我的.htaccess
文件的内容:
# Set the REQUIRE_AUTH environment variable if we should password protect
SetEnvIfNoCase HOST staging REQUIRE_AUTH
SetEnvIfNoCase Request_URI ^/privacy-policy$ !REQUIRE_AUTH
# Define the basic auth setup
AuthType Basic
AuthName "Staging Area"
AuthUserFile /var/app/current/public/.htpasswd
Require valid-user
# Allow all access, but challenge for a password if REQUIRE_AUTH
Order Allow,Deny
Allow from All
Deny from env=REQUIRE_AUTH
Satisfy any
它不起作用。如果我转到http://staging.mysite.com,我会得到用户名/密码挑战,如我所料。但是,如果我去http://staging.mysite.com/privacy-policy,那么我也会接受挑战。我希望不会在该页面上要求输入用户名和密码。
我知道正确设置了REQUIRE_AUTH变量。如果我访问根网站,则将其设置为1
,如果我转到隐私政策页面,则表示未设置。
我怀疑这个问题可能出现在.htaccess
的最后几行,但我并不乐观。任何帮助将不胜感激。
P.S。 - 还有一些与此类似的文章,但在这种情况下,没有一个解决方案非常有效。