2017-08-10 18 views
1

所以我有多個(子)域。它們都鏈接到一臺服務器,但在不同文件夾上具有不同的文件結構。例如:如果用戶來自特定網頁,如何在.htaccess中跳過驗證?

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/ 

每個web應用都有自己的htpasswd的保護,這是的.htaccess文件:

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

現在我想打一個子域的網頁,該列表和鏈接所有的webapps。這個文件也應該有密碼保護。 如果用戶使用此密碼保護列表導航到其中一個webapp-頁面,則應該跳過webapps的htaccess保護。

如果用戶跳過列表頁面並直接導航到web應用程序域,密碼保護應該照常顯示。

有什麼辦法可以實現這個可能真正不常見的功能?

回答

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> 
+0

這項工作爲您服務@skalibran? – Lag

+0

嗨,很抱歉我遲到的答案!使用,我沒有成功請求以前的HTTP_HOST。我希望我能找到時間更深入地挖掘它。 – Skalibran

相關問題