密码保护目录[cPanel] - 不接收登录提示和错误401

时间:2015-07-05 01:46:18

标签: .htaccess cpanel password-protection .htpasswd

我在我的网站上为302,401,403,404和500个HTTP错误代码设置了自定义错误页面。五个自定义错误页面文件存储在主目录中。

我还想用密码保护特定目录,并尝试使用cPanel"密码保护目录"特征

我还应该提一下,在主目录中,有一个.htaccess文件,其中包含以下内容:

<limit GET POST PUT>
order deny,allow
allow from all
</limit>

Options -Indexes

ErrorDocument 302 /302.php
ErrorDocument 401 /401.php
ErrorDocument 403 /403.php
ErrorDocument 404 /404.php
ErrorDocument 500 /500.php

有了这个,我现在可以解释这个设置目前正在发生什么。从本质上讲,受密码保护的页面不是通过Web浏览器提示输入用户名和密码,而是直接进入401.php错误页面。

我已经尝试将错误页面移动到他们自己的目录/error/,我尝试使用cPanel自己的错误页面设置工具(使用.shtml个文件),我也尝试过cPanel的错误页面和我自己的错误页面组合。

从我的测试来看,似乎cPanel的.shtml错误页面有效,但它们很难看并且与网站的主题不匹配。我创建的错误页面,使用PHP来索取主题文件,以及回显用户请求的URL。

即使在重新上载主目录的.htaccess文件之后,我似乎也将两组错误页面组合起来,但是在删除了cPanel所做的集合之后,一切都再次崩溃。我也不知道使用两组错误页面是否是一种好的做法,如下所示:

<HOME_DIR>
--- <DIR>
    --- .htaccess (contains code for password protection)
    --- index.php
--- .htaccess (links to PHP error pages)
--- 302.php
--- 302.shtml
--- 401.php
--- 401.shtml
--- 403.php
--- 403.shtml
--- 404.php
--- 404.shtml
--- 500.php
--- 500.shtml
--- index.php

这是我以前从未经历过的事情。从我可以确定的,问题来自主目录下的.htaccess文件,但我不是100%。

最后,这是cPanel在设置密码保护时创建的.htaccess文件(注意:&#34;&lt; USER&gt;&#34;和&#34;&lt; DIR&gt;&# 34;已被用于隐私):

AuthType Basic
AuthName "Authentication Required"
AuthUserFile "/home/<USER>/.htpasswds/public_html/<DIR>/passwd"
require valid-user

顺便说一句,它是一个Apache服务器。非常感谢任何建议。

2 个答案:

答案 0 :(得分:0)

临时重命名.htaccess文件,其中添加了ErrorDocument规则,然后清除浏览器缓存和Cookie。现在尝试访问受密码保护的URL。如果可行,请复制ErrorDocument代码并在密码保护规则之后添加它。

答案 1 :(得分:0)

间接解决方案

我似乎必须将错误页面文件从。php转换为。shtml格式。除此之外,所有PHP require语句都已被删除,而不是纯HTML(因为我无法使它们正常工作,甚至没有使用SSI&#39; #include语句),最后我必须为请求的网址替换PHP echo,以支持SSI #echo

对于这样平凡的事情来说,这不仅仅是必要的工作。我不知道为什么PHP与受密码保护的目录冲突。在我过去使用PHP错误页面之前,这还没有发生过。它必须是PHP和密码保护之间的某种冲突。

嗯,对于它的价值,有一个解决方案&#39;。

相关问题