htaccess没有加载404页面(无限重定向)

时间:2014-11-27 12:32:12

标签: wordpress .htaccess http-status-code-404

这让我发疯了!我使用wordpress并在我的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>

在我的htaccess的最顶端,我试图放; Errordocument /index.php?error=404和其他替代方向,但它们导致页面不重定向或内部服务器错误等。

我已经看到其中许多已在这里得到解决,但我没有找到某人在他们的htaccess中拥有相同代码的情况。 我试图删除

RewriteRule ^index\.php$ - [L]

RewriteRule . /index.php [L]

这提供了更多错误,解释了在getheader()中尝试查找我的404.php或我的404.php的第10行时出现404错误,并且它还完全删除了我的BWP站点地图。 我正在使用子主题,但我已经将404.php / header / footer / index复制到了childtheme以简化操作。 任何帮助将不胜感激

由于

1 个答案:

答案 0 :(得分:1)

好的,我已经完全解决了这个问题,而不是删除它,我会把它留在这里,这样它可以帮助像我这样一直困扰这个问题的人。我终于在404错误页面上通过无限重定向解决了这个问题,如果您有以下条件,此解决方案将仅适用于您:

  • 正在使用wordpress
  • 正在您的网站上使用SSL(HTTPS)
  • 正在尝试在所有页面上强制使用SSL(HTTPS)
  • 编辑了htaccess或安装了强制SSL(HTTPS)插件
  • 在更改htaccess

  • 之前,您的404页面必须正常运行
  • 如果您有以下条件,则只需删除即可 您安装或更改的任何将HTTP重定向到HTTPS的内容,它可能是一个插件 强制所有页面上的SSL(HTTPS)或htaccess中的某些代码(你 应该知道你添加或更改了什么。

一旦删除它进入wordpress并编辑你的主页,你会在右侧看到它将有一个启用SSL复选框(这会将HTTP重定向到HTTPS,仅强制当前页面的HTTPS),只需勾选此项框,然后重复所有要在SSL(HTTPS)中显示的页面,请务必更新已更改为SSL(HTTPS)的所有页面,并且完成。

我花了很长时间才意识到,通过这样做,我已经在所有页面上强制使用SSL(HTTPS),并且在htaccess中有任何其他类似插件或代码片段只是让循环无限(因为wordpress已经将HTTP重定向到HTTPS其他任何做同样事情会产生无限循环),404页面无限重定向,因为404错误页面只在HTTP中加载而不是HTTPS,使其成为强制SSL(HTTPS)插件或代码重定向的目标片段。

在意识到这一点后,我可以看到解决这个问题的另一种方法是在HTTPS中加载404错误页面。

我希望这可以帮助别人,即使它很明显。