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

时间:2010-09-08 18:50:35

标签: .htaccess virtual-directory password-protection clean-urls

我的网站有一个像mysite.com/folder/title这样的虚拟目录结构,它实际上是对mysite.com/f/index.php?p=title的.htaccess重写。我想用.htaccess密码保护文件夹folder,并知道如何使用实际文件夹。但我不想密码保护主站点mysite.com,现在如果我将.htaccess文件放在mysite.com目录中,我正在保护mysite.com和{{1} }。我也尝试过保护mysite.com/folder

如何使用.htaccess仅保护mysite.com/f

编辑:添加了mysite.com/folder的.htaccess内容。

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> 中尝试过此功能可以在移动到mysite.com/f时成功保护整个网站,因此我知道路径是正确的。当它在子目录中时,它会生成404错误而不是密码提示。

mysite.com

3 个答案:

答案 0 :(得分:1)

旧线程已经老了......

在遇到类似问题时偶然发现了这个问题,密码保护子域名,同时保持主站点没有。

解决方案比我原来做的更容易。

在document_root / .htaccess中,domain.com / wiki重定向到domain.com/w(因为那更干净了?):

RewriteEngine On
RewriteRule ^/?w(/.*)?$ /wiki/index.php [PT,L,QSA]
RewriteRule ^/*$ /wiki/index.php [L,QSA]

在document_root / wiki / .htaccess中,wiki目录受密码保护:

AuthType Basic
AuthName "Restricted"
AuthUserFile "/home/user/.htpasswds/public_html/wiki/passwd"
require valid-user

我只是将此行添加到document_root / .htaccess的顶部,因此它显示为:

AuthType None
RewriteEngine On
RewriteRule ^/?w(/.*)?$ /wiki/index.php [PT,L,QSA]
RewriteRule ^/*$ /wiki/index.php [L,QSA]

domain.com不再受密码保护,domain.com / wiki会按预期重定向并具有密码保护功能。

希望它可以帮助别人。

答案 1 :(得分:0)

有一件事(但不是最优雅的解决方案)是实际创建一个名为“folder”的文件夹(或者您尝试密码保护的虚拟文件夹)并将.htaccess放入其中。< / p>

答案 2 :(得分:0)

假设您使用的是Apache 2.2

...并且,您的服务器正在您无权修改服务器配置的计算机上运行

...然后,使用您想要的规则创建:mysite.com/f/.htaccess。

很好地讨论何时使用此项以及何时不能找到here