强制将 HTTP 转换为 HTTPS 导致 404 错误

强制将 HTTP 转换为 HTTPS 导致 404 错误

我有一个基于 WordPress 的网站,其中一部分是由外部程序员(后端)构建的。我能够使用 WordPress 部分的插件强制所有连接都使用 HTTPS 而不是 HTTP,但对于这个不是基于 WordPress 的特定区域,我必须做其他事情。我的知识有限,所以我只是谷歌了一下,发现我应该在特定文件夹中创建一个 .htaccess 文件,其中包含以下内容:

RewriteEngine On 
RewriteCond %{SERVER_PORT} 80 
RewriteCond %{REQUEST_URI} folder 
RewriteRule ^(.*)$ https://www.yourdomain.com/folder/$1 [R,L]

我就是这么做的,现在当我尝试访问该区域时,它说它不存在(404 错误):

The requested URL /backend/auth/login was not found on this server.
Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.

奇怪的是,当我尝试直接访问链接请求的 URL /backend/index.php 时,它确实有效并将我重定向到:

/backend/index.php/auth/login

我不知道如何修复它或做什么,但实际上我没有看到那里有“auth”文件夹,但它在 index.php 下工作

此外,当我尝试撤销我所做的事情时,我删除了.htaccess 文件,但它仍然不起作用,这真的很奇怪。

有什么想法吗?...谢谢!

答案1

您将 htaccess 文件放在哪个文件夹中?如果您将 wordpress 嵌套在顶级文件夹中,则可能有两个。例如,我在服务器上有 wwwroot 文件夹和一组子域文件夹,如下所示:

/ (wwwroot)

/sub1-wordpress 安装 1

/sub2-wordpress 安装 2

/sub3-wordpress 安装 3

每个子文件夹都有自己的一组 .htaccess 400/401/403/404/500 文件(自动,因为是 wordpress)。

这样可以将服务器范围的 htaccess 规则放入单个文件(wwwroot 中,例如安全规则),然后将特定于站点的规则(重定向等)放入每个 wordpress 文件夹(根据需要)。它还允许隔离每个 wordpress 安装,以便它们不会相互影响。请记住,根 htaccess 应该只包含您想要应用的规则全部子文件夹。

相关内容