如何使.htaccess规则适用于指定的域,子域或插件

时间:2017-08-20 06:34:32

标签: wordpress apache .htaccess mod-rewrite

这是我的cpanel目录结构:

public_html
    |--->wordpress installed 

sudomain-directory
    |--->wordpress installed
addon-domain
    |--->wordpress installed

我做了什么: 根据用户选择,密码 .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

  

为了使其工作,我添加了<FilesMatch "wp-login.php">规则和   在根目录中创建了.htaccess

但这样做会使规则适用于所有域和子域

为什么我没有把它放在根目录中 我不希望在所有子域和插件域上实施规则。希望它仅在那些域或用户选择的子域上实现。

1 个答案:

答案 0 :(得分:0)

我希望我能正确理解您的问题 - 但如果用户指向特定域,您只希望身份验证能够正常运行。

为此,您可以使用if directive

因此,如果user 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>

我希望这有助于并且一如既往地在测试之前清除缓存。