我有一个htaccess文件,用于密码保护名为wp-login.php的文件(由Wordpress用于登录)。
这就是htaccess的样子:
ErrorDocument 401 "Authorization Required"
<FilesMatch "wp-login.php">
AuthName "Restricted"
AuthType Basic
AuthUserFile /home/username/.wp-admin
require valid-user
</FilesMatch>
我想在directory xyz
下的文件中设置密码,因此xyz/wp-login.php
应该有密码。
然而,问题是我在wp-login.php
(abc的子目录)下有另一个xyz/abc/ directory
文件,我 NOT 想要密码保护。但这种情况会自动发生在htaccess指令中 - 所以我的问题是如何防止指令级联到子目录?
我知道带有嵌套File指令的Directory指令,但这似乎仍然是级联密码保护 - 注意我有权访问我的httpd.conf
文件,因为我使用的是VPS而不是共享主机。
谢谢!
答案 0 :(得分:1)
而不是FilesMatch
设置你的.htaccess:
SetEnvIfNoCase Request_URI "^/wp-login\.php" AUTH_NEEDED
AuthType Basic
AuthName "Restricted"
AuthUserFile /home/username/.wp-admin
Satisfy any
Order allow,deny
Allow from all
Deny from env=AUTH_NEEDED
仅当URI为http://site.com/wp-login.php
且http://site.com/xyz/wp-login.php
等免于身份验证时才需要进行基本身份验证。
答案 1 :(得分:0)
基本上,您在子目录中创建一个新的.htaccess
文件以覆盖根目录。关于此问题的更多细节在此问题中描述:
How to remove .htaccess password protection from a subdirectory
希望它有所帮助。