2012-01-29 51 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