使用 .htaccess 密码保护虚拟目录

使用 .htaccess 密码保护虚拟目录

我有一个网站,其虚拟目录结构类似于mysite.com/folder/title,实际上是 .htaccess 重写为mysite.com/f/index.php?p=title。我想用folder.htaccess 密码保护文件夹,并且知道如何对实际文件夹进行保护。但我不想用密码保护主网站mysite.com,现在如果我将 .htaccess 文件放在mysite.com目录中,我就会保护mysite.commysite.com/folder。我也尝试过保护mysite.com/f

我如何才能仅mysite.com/folder使用 .htaccess 进行保护?

.htaccess 的内容mysite.com

<IfModule mod_rewrite.c>
RewriteEngine On

RewriteRule ^folder/(.*)$ /f/index.php?p=$1 [PT,L,QSA]
RewriteRule ^folder/*$ /f/index.php [L,QSA]

RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

</IfModule>

我尝试过的 .htaccess 文件mysite.com/f在移入其他 .htaccess 文件时成功保护了整个站点,所以我知道路径是正确的。

AuthName "Restricted Area" 
AuthType Basic 
AuthUserFile /home/myusername/.htpasswd 

答案1

首先,您不应该将该配置(重写规则)放在 .htaccess 文件中,而应该将其放在目录部分下的主配置文件中(假设您有权访问该文件)。Apache 文档解释了原因

您应该检查是否具有正确的 AllowOverride 设置。如果所有设置都正确,则将您指定的 .htaccess 文件放在 mysite/f 文件夹中应该足以对其进行密码保护。

相关内容