这是我的 cpanel 目录结构:
public_html
|--->wordpress installed
sudomain-directory
|--->wordpress installed
addon-domain
|--->wordpress installed
我做了什么: 根据用户选择,passwd 和 .htaccess 文件将在 wp-admin 目录内的相应域中创建
.htaccess 文件
authname "member only"
authtype basic
authuserfile /home/taragurung/public_html/wp-admin/.passfile
require valid-user
现在,当用户尝试访问 www.somedomain.com/wp-admin 时,身份验证将弹出,并且按预期工作。
问题: 问题是它仅适用于 wp-admin,但不适用于 www.somedomain.com/wp-login
To make it work I added the
<FilesMatch "wp-login.php">
rule and created the .htaccess in the root directory
但这样做将使规则适用于所有域和子域
为什么我没有把它放在根目录中: 我不希望在所有子域和插件域上实现这些规则。希望它仅在用户选择的域或子域上实现。
最佳答案
我希望我正确理解了您的问题 - 但您只希望当用户来自特定域时身份验证才能工作。
为此,您可以使用 if 指令
。
因此,如果用户x
来自域somedomain.com/wp-login
,那么它将显示身份验证,如果没有,则不会显示它。
<if "%{HTTP_HOST} == 'somedomain.com/wp-login'">
authname "member only"
authtype basic
authuserfile /home/taragurung/public_html/wp-admin/.passfile
require valid-user
</if>
我希望这会有所帮助,并且一如既往,在测试之前清除您的缓存。
关于wordpress - 如何使 .htaccess 规则适用于指定的域、子域或插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45779169/