2012-07-17 106 views
0

我已經搜索瞭解決方案,但沒有找到明確的答案 - 這是我的領域的一點點,但我需要找到一個答案掐。通過http和https通過htaccess授權訪問

我使用.htaccess來驗證並允許從外部鏈接訪問某些網頁。 這裏是什麼,我用一個樣本:

AuthUserFile /dev/null 
AuthGroupFile /dev/null 

RewriteEngine On 
RewriteCond %{HTTP_REFERER} !^http://www.website_abc.com/ 
RewriteCond %{HTTP_REFERER} !^http://www.website_xyz.com/ 

RewriteRule /* http://www.mysite.com/denied_message.php [R,L] 

這個工程,我希望它 - 我列出我想在根目錄訪問和公園的.htaccess網站。

我的問題是,當有人從HTTPS鏈接它的塊,即使他們在列表中(我也嘗試將https放入列表中)。 我找到了各種答案,但沒有一個我完全理解或者做了這個把戲。

一個是使用:

RewriteCond %{HTTPS} on 

但允許任何人在任何地點。

有人能爲我拼出這個嗎?

apache/LAMP

謝謝!

+0

正如一個側面說明,該重寫條件將所有流量指向https。所以如果你的其他重寫條件在https上不匹配,那麼它將不起作用。更有經驗的人將不得不評論這些新的重寫條件是什麼。是否有一個原因,你不想使用像PHP這樣的腳本來做到這一點?這將是超級簡單的PHP。我不知道這個級別的東西是否可以在htaccess中完成。 – tubaguy50035 2012-07-17 21:39:29

+1

它就是其中之一「它只是它已完成的方式」類型的項目。 _這將是超級簡單的php_ - 我開放的PHP替代(和更熟悉),只要我可以繼續添加新的傳入網站列表等。 – user371051 2012-07-18 13:27:01

+0

是的,我會說你最好使用PHP並控制基於$ _SERVER ['HTTP_REFERER'] – tubaguy50035 2012-07-18 13:33:47

回答

2
RewriteCond %{HTTPS} on 

這增加了一個條件,即您的網站的實際請求是通過HTTPS。你只想匹配引用者。我不知道就你試過如添加https://版本你有你的引薦檢查什麼什麼,但這個工程時,我把它們放在一個空htaccess文件:

​​
+0

我嘗試了這種方法,但這些https用戶被阻止並重定向到「被拒絕的消息」。對他們的結局也可能有一些限制,我沒有控制權,所以我需要找到另一種方式。 – user371051 2012-07-18 13:29:38