2012-01-29 52 views
0

我一直在使用http認證使用.htaccess文件來嘗試改善我的當前cms。Htaccess - Http身份驗證 - 可能可以捕獲GET並應用身份驗證,然後重定向?有示例

我發現在Apache的一個解決方案,而,我在HTML中使用鏈接的地方<a href=".test">Test</a>

我再加入這個我的.htaccess:

<Files .test> 
AuthType Digest 
AuthNAme "Restricted Page" 
AuthDigestProvider file 
AuthUserFile /usr/home/myDomain/includes/htpasswd/admin/.htdigest 
Require valid-user 
# If user is authenticated then redirect 
RewriteEngine on 
RewriteCond %{REMOTE_USER} !="" 
RewriteRule ^.*$ /test.php? [R] 
</Files> 

這個做什麼,是當用戶點擊超鏈接提到,用戶則通過HTTP認證的登錄表單的提示。當他們輸入正確的憑證時,它們會被重定向到名爲test.php的可訪問根目錄中的一個頁面,該頁面又包含cms索引,該目錄位於Web根目錄之外。

如果用戶選擇cms中的一個部分,系統會提示他們再次登錄(使用站點默認基於php的登錄系統),只有具有正確角色分配的用戶纔可以訪問任何特定部分。

雖然這是有用的,這是不太什麼,我試圖完成。

我想到的是,在我的情況下有兩種可能的解決方案。

其中之一是其中一個用戶可以輸入說,在地址http://www.myDomain.com/?whateveryoulike和被引導到我的CMS來代替。理想情況下,此重定向將直接指向其根目錄中的我的cms索引,該索引不可通過http://訪問。像這樣的東西,可以在PHP來實現:

if isset($_GET['whateveryoulike']) 
{ 
include $_SERVER['DOCUMENT_ROOT'] . '/../../admin/blah.php'; 
} 

我想到了另外一個辦法是什麼我不知道非常關注,但它涉及到HTTP認證,我已經使用過一次看到...

基本上用戶輸入[email protected],他們得到系統提示HTTP認證登錄框。當證書被滿足時,它們被髮送到網站內的一個單獨的部分。

會有人能夠提供與我怎麼會去這任何輸入,建議或addittional想法?

雖然我的問題是,如果有可能實際抓住GET(http://www.myDomain.com/?whateveryoulike),那麼應用http身份驗證,然後將用戶重定向到一個頁面,該頁面不在http://根目錄中?

感謝您花時間閱讀本文!

+0

我想我能做的就是增加我的小PHP語句來我的配置,然後通過在索引頁PHP使用HTTP認證... – 2012-01-29 18:34:34

回答

2

有可能實際上是搭上GET,應用HTTP認證,然後將用戶重定向到被舉起手中的HTTP的網頁://根?


原因是可能的欺詐,這是在幾年前使用。
此後,瀏覽器拒絕默認授權用戶。不過,我根本看不出整個企業的意義。

+0

謝謝您的輸入。此外,這一點非常簡單。這是一個有趣的方式來學習:) – 2012-01-29 18:31:01

+0

你可以請進一步解釋你說什麼,當你說欺詐嗎? – 2012-01-29 18:32:07

+0

沒關係。儘管我個人喜歡學習一些合理的東西。 – 2012-01-29 18:32:21