我有一个像mysite.com/folder/title这样的虚拟目录结构的网站,它实际上是一个.htaccess重写为mysite.com/f/index.php?p=title 。 我想使用.htaccess密码保护文件folder文件folder ,并知道如何做到与实际的文件夹。 但我不想密码保护主站点mysite.com ,现在如果我把.htaccess文件放在mysite.com目录下,我正在保护mysite.com和mysite.com/folder 。 我也尝试保护mysite.com/f 。
如何使用.htaccess保护mysite.com/folder ?
mysite.com .htaccess内容。
<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文件时,这成功地保护了整个站点,所以我知道path是正确的。
AuthName "Restricted Area" AuthType Basic AuthUserFile /home/myusername/.htpasswd
首先,你不应该把这个configuration(重写规则)放在.htaccess文件中,你应该把它放在目录部分下的主configuration文件(假设你有权访问该文件)。 Apache文档解释了原因 。
你应该检查你是否有正确的AllowOverride设置。 如果所有设置都正确,那么指定坐在mysite / f文件夹中的.htaccess文件应该足以进行密码保护。