我一直在使用.htaccess文件进行http身份验证,试图改善我当前的cms。
我在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的页面,该页面又包含从Web根目录中保留的cms索引。
如果用户选择cms中的某个部分,系统会提示他们再次登录(使用网站默认基于php的登录系统),只有具有正确角色分配的用户才能访问任何特定部分。
虽然这很有用,但这并不是我想要完成的。
我所想到的,在我的案例中是两种可能的解决方案。
一个用户可以在地址中输入说http://www.myDomain.com/?whateveryoulike
,然后转到我的cms。理想情况下,此重定向将直接指向其根目录中的cms索引,该目录无法通过http://
访问。这样的事情可以在php中完成:
if isset($_GET['whateveryoulike'])
{
include $_SERVER['DOCUMENT_ROOT'] . '/../../admin/blah.php';
}
我想到的另一个选项是我不太了解的东西,但它与http身份验证有关,而且我曾经在使用过一次......
用户基本上输入username@www.myDomain.com,然后会出现http auth登录框提示。当凭据符合时,它们将被发送到网站内的单独部分。
是否有人能够提供有关我将如何处理的任何意见,建议或补充意见?
我的问题是,是否可以实际捕获GET(http://www.myDomain.com/?whateveryoulike
)应用http身份验证然后将用户重定向到http://
根目录之外的页面?
感谢您抽出宝贵时间阅读本文!
答案 0 :(得分:2)
可以实际捕获GET,应用http身份验证然后将用户重定向到一个保持在http:// root之外的页面?
没有。
原因可能是几年前使用过的欺诈行为
从那以后,浏览器拒绝以静默方式授权用户。