我的网站有一个像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
答案 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。