如果用户来自特定网页,如何跳过.htaccess中的身份验证?

时间:2017-08-10 08:49:00

标签: php .htaccess https server subdomain

所以我有多个(子)域。所有这些都链接到一个服务器,但在具有不同文件结构的不同文件夹上。例如:

http://webapp1.example.com/  //Subdomains don't have https (no wildcard)
https://www.example.com/webapp_that_needs_https (some webapps are required to have https and therefore can't be on a subdomain)
http://webapp2.example.com/

每个webapp都有自己的.htpasswd-protection,这是.htaccess文件:

# Password
AuthType Basic
AuthName "Password Protected Area"
AuthUserFile /www/serverid/webpages/webapp1/.htpasswd
Require valid-user

现在我想在子域上创建一个网页,列出并链接所有的webapps。此文件也应受密码保护。 如果用户使用此受密码保护的列表导航到其中一个webapp页面,则应跳过对webapps的htaccess-protection。

如果用户跳过列表页面并直接导航到webapp-domain,则密码保护应该照常显示。

有没有办法实现这个可能非常罕见的功能?

1 个答案:

答案 0 :(得分:0)

我相信你可以使用if directive来做到这一点。在您的.htaccess中,您将使用:

<if "%{HTTP_HOST} != 'example.com'">
    ....
</if>

因此,您可以在if directive中放置您希望他们引用的域名,如果它不匹配,则会运行Auth Type。将您的最终代码保留为:

<if "%{HTTP_HOST} != 'example.com'">
    # Password
    AuthType Basic
    AuthName "Password Protected Area"
    AuthUserFile /www/serverid/webpages/webapp1/.htpasswd
    Require valid-user
</if>