gpt4 book ai didi

apache - mod_rewrite 和 HTTP 基本身份验证

转载 作者:行者123 更新时间:2023-12-02 09:13:05 26 4
gpt4 key购买 nike

我已将 WordPress 安装在 Web 服务器的根目录中,并将以下重写规则放入根 .htaccess 中:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

在子目录forum中是另一个需要受HTTP Basic auth保护的PHP应用程序。正如您所期望的,forum 目录中有一个 .htaccess 文件,如下所示:

AuthType Basic
AuthName MembersArea
AuthUserFile /home/user/public_html/needsecure/.cnk-htpasswd_db/.1_htpasswd
require valid-user

现在,据我所知,根 .htaccess 文件中的 RewriteCond 语句应该确保如果用户直接访问子目录,则不会发生重写。对于物理文件和名为 index.php 的文件也是如此。然而,当访问 /forum/forum/ 甚至 /forum/index.php 时,WordPress 404 页面会显示。

我尝试将 forum 目录从重写规则中完全排除

    RewriteCond %{REQUEST_URI} ^forum/

在最终的重写规则之前,该规则不起作用。我也尝试过

    RewriteRule ^forum(.*)$ - [L]

高于所有其他规则,但这也不起作用。我什至在 forum/.htaccess 中尝试了 RewriteEngine Off,但没有成功。

如果我删除 WordPress 重写规则,它可以解决问题,如果我删除基本身份验证规则,它可以解决问题。只有当两者都存在时才会出错:就好像基本身份验证完全破坏了重写条件。这是众所周知的事情吗?

有什么建议吗?这现在让我很紧张,我整晚都在搞乱它。

最佳答案

要从 WordPress 规则中排除论坛目录,请添加如下条件

#if its not the forum directory
RewriteCond %{THE_REQUEST} !^[A-Z]{3,9}\ /forum/ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

关于apache - mod_rewrite 和 HTTP 基本身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9284771/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com