【问题标题】:how to make the .htaccess rule work for specified domain ,subdomain or addons如何使 .htaccess 规则适用于指定的域、子域或插件
【发布时间】:2023-03-07 15:24:01
【问题描述】:

这是我的 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

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

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

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

【问题讨论】:

    标签: wordpress apache .htaccess mod-rewrite


    【解决方案1】:

    我希望我已经正确理解了您的问题 - 但您只希望在用户从特定域定向的情况下进行身份验证。

    为此,您可以使用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>
    

    我希望这会有所帮助,并且一如既往地在测试之前清除您的缓存。

    【讨论】:

    • 是的,您理解问题所在,但问题是根目录中的 htaccess 规则也正在实施到安装在子域文件夹上的 wordpress。尝试了您的解决方案,但没有奏效
    • 即使在主域上添加了该规则,我也会遇到禁止错误。 @滞后
    猜你喜欢
    • 1970-01-01
    • 2021-01-29
    • 2011-03-30
    • 1970-01-01
    • 2012-05-30
    • 1970-01-01
    • 1970-01-01
    • 2012-06-11
    • 1970-01-01
    相关资源
    最近更新 更多