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

使用.htaccess密码保护虚拟目录,.htaccess,virtual-directory,password-protection,clean-urls,.htaccess,Virtual Directory,Password Protection,Clean Urls,我有一个虚拟目录结构的站点,比如mysite.com/folder/title,实际上是.htaccess重写到mysite.com/f/index.php?p=title。我想使用.htaccess对文件夹文件夹进行密码保护,并知道如何使用实际文件夹进行密码保护。但是我不想用密码保护主站点mysite.com,现在如果我把.htaccess文件放在mysite.com目录中,我就是在保护mysite.com和mysite.com/folder。我也尝试过保护mysite.com/f 如何使用.

我有一个虚拟目录结构的站点,比如
mysite.com/folder/title
,实际上是.htaccess重写到
mysite.com/f/index.php?p=title
。我想使用.htaccess对文件夹
文件夹
进行密码保护,并知道如何使用实际文件夹进行密码保护。但是我不想用密码保护主站点
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>

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

假设您使用的是Apache 2.2

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

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

可以找到关于何时使用和何时不使用的详细讨论。

旧线程是旧的

在遇到类似问题时偶然发现了这一点,密码保护子域,同时保持主站点不受攻击

这个解决方案比我最初想象的要简单

在文档_root/.htaccess中,domain.com/wiki重定向到domain.com/w(因为这更干净?lol):

在文档\u 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将按预期进行重定向,并提供密码保护


希望它能帮助其他人。

您有权更改主服务器配置吗?您是否尝试将.htaccess文件移动到“f”文件夹中以保护它?是的,只要将其拖动到
/f
中就可以了。我没有访问主服务器配置的权限,我已经试着把它移到
/f
,但它不起作用。@jkeesh你的
.htaccess
文件的内容是什么?嗯。。。您是否尝试验证是否正在加载.htaccess?检查的一种方法是在文本文件中放入一些无意义的内容,从包含伪.htaccess文件的目录加载一个页面,并检查服务器日志以验证是否引发了错误。如果这不会产生错误(文件未加载),那么您的问题可能是allowoverride在此设置为“None”:httpd.apache.org/docs/current/mod/core.html#allowoverride
AuthType Basic
AuthName "Restricted"
AuthUserFile "/home/user/.htpasswds/public_html/wiki/passwd"
require valid-user
AuthType None
RewriteEngine On
RewriteRule ^/?w(/.*)?$ /wiki/index.php [PT,L,QSA]
RewriteRule ^/*$ /wiki/index.php [L,QSA]