我整个上午一直在摆弄这个,我真的希望有人可以帮助我。我的网站上有一个目录,只有管理员必须能够访问。所以我使用.htaccess文件密码保护它。但我希望index.php仍然可以访问。
所以我试过了:
AuthUserFile "/home/example.com/passwords/.htpasswd"
AuthType Basic
AuthName "Admin"
require valid-user
<FilesMatch "^index\.php$">
Satisfy Any
Allow from all
</FilesMatch>
是的,它是有效的,但只有在URL中明确指定index.php:
http://www.example.com/admin/index.php - &gt;行
http://www.example.com/admin/ - &gt; Popup哭着登录
http://www.example.com/admin - &gt; Popup哭着登录
所以我接着修改了正则表达式:
<FilesMatch "^(|index\.php)$">
Satisfy Any
Allow from all
</FilesMatch>
不是我写过的最好的正则表达式,但是嘿,有一些结果:
http://www.example.com/admin/index.php - &gt;行
http://www.example.com/admin/ - &gt;行
http://www.example.com/admin - &gt; Popup哭着登录
我只是不明白为什么这不起作用。我也试图像这样扭转整个事情:
AuthUserFile "/home/example.com/passwords/.htpasswd"
AuthType Basic
AuthName "Admin"
<FilesMatch "^(?!index\.php).+$">
require valid-user
</FilesMatch>
但又无济于事......任何人都能看到解决方案吗?
答案 0 :(得分:0)
我不知道如何允许访问http://www.example.com/admin 但是您可以通过将访问重定向到index.php来避免调用目录 如您所见:
RewriteRule ^admin$ admin/index.php
或者如果需要获取参数
RewriteRule ^admin\/?\?([^#]*)$ admin/index.php?$1