使用.htaccess保护文件夹

时间:2014-06-03 19:56:26

标签: php apache .htaccess url-rewriting

我的网站遇到了一些问题(www.barbarian-strongman28.fr)。

我使用这个.htaccess设置了一些url重写,它位于我服务器的主公共文件夹中(称为www)

htaccess的:

Options +FollowSymlinks
RewriteEngine On 
ErrorDocument 404 /index.php?p=404
# Pages with the PHP p= parameter
RewriteRule ^([^/]*)/([^/]*)\.html$ /index.php?p=$1&id=$2 [L]
RewriteRule ^([^/]*)\.html$ /index.php?p=$1 [L]

我有一个名为admin的文件夹,我想要保护。

所以我设置了这个.htaccess

AuthName "Restricted Area" 
AuthType Basic 
AuthUserFile /htdocs/admin/.htpasswd 
AuthGroupFile /dev/null 
require valid-user

我已将此文件上传到我要保护的文件夹

我遇到的麻烦是,即使我不在受保护的目录中,网站也需要验证。

非常感谢任何形式的帮助。

1 个答案:

答案 0 :(得分:2)

我猜你的.htaccess文件位于服务器的主目录中。那是你的问题:

  

"另请注意,如果您将此htaccess文件放在根目录中,它将使用密码保护您的整个网站,这可能不是您的确切目标。"
  (来自http://www.javascriptkit.com/howto/htaccess3.shtml

所以解决方案很简单:将.htaccess文件放在要保护的目录中。你还应该确定一些事情(尽管你的脚本看起来没问题):

  1. 所有文件的路径都是服务器路径而不是网址(您已完成此操作);
  2. .htpasswd文件位于安全位置
  3. .htpasswd文件的格式为username:password,密码已编码 - 如果需要,可以创建.htpasswd文件tool
  4. 希望这有帮助。