【问题标题】:Redirecting nonexistent index.html to home page in Wordpress is causing too many redirects in browser在 Wordpress 中将不存在的 index.html 重定向到主页会导致浏览器中的重定向过多
【发布时间】:2016-03-27 15:34:42
【问题描述】:

我最近将我的网站从静态 html 更改为 Wordpress,这样做时,每当 Google 向我显示抓取错误时,我都会使用我的 .htaccess 文件重定向所有以前的和不存在的页面。直到今天,我一直成功地重定向所有抓取错误。我的旧index.html 抛出了一个抓取错误,当我使用时:

Redirect 301 /index.html http://www.example.com

...我从我的浏览器得到这个:

尝试打开 www.example.com 时发生的重定向过多。如果您打开一个页面,该页面被重定向以打开另一个页面,然后该页面又被重定向以打开原始页面,则可能会发生这种情况。*

我已经从我的.htaccess 文件中删除了上述重定向,如果我无法解决这个问题,我只会忍受抓取错误。但我想有人知道如何解决这个问题,如果是这样,如果你能让我知道如何解决,我将不胜感激。

【问题讨论】:

  • 你在 htaccess 中有其他重定向吗
  • 现在目录索引文件是什么?
  • 是的,就像我在原始帖子中所说的那样,“每当 Google 向我显示抓取错误时,我都会使用 .htaccess 文件重定向所有以前的和不存在的页面。我已经成功将所有抓取错误重定向到今天。”当我进入我的 Google 网站管理员帐户并单击抓取错误时,它会将我带到我网站上的一个页面,该页面显示“未找到页面”。对于我过去遇到的所有其他抓取错误,我只是使用我的 .htaccess 文件将抓取错误链接重定向到我希望它转到的页面并修复它。这个错误不是这样。看来索引必须以不同的方式处理。
  • 现在目录索引文件是什么?我不确定我知道你在问什么。我的网站建立在 Wordpress 平台上。根目录中有一个 index.php 文件,但这不是我的主页,就像我的旧 index.html 文件在我的旧站点上一样。我在想我的主页是从几个不同的模板和数据库中提取的。 Wordpress 对我来说是一个新世界。

标签: html wordpress apache .htaccess redirect


【解决方案1】:

如果您的DirectoryIndex 设置为index.html(作为第一个选项),您可能会遇到此重定向循环,这可能是您服务器上的默认设置。

基本上,当您访问目录时,例如。 http://example.com/(根目录)然后DirectoryIndex 指令告诉服务器服务哪个文件(通过内部重写)。例如。 http://example.com/index.html。然后这会为重定向循环播种。

由于您使用的是 WordPress,您可以在 .htaccess 中将其更改为支持index.php。例如,在 .htaccess 文件的顶部:

DirectoryIndex index.php index.html

但是,您也可以使用 mod_rewrite 来解决这个问题(这可能更可取)。事实上,由于 WordPress 已经使用 mod_rewrite(例如 RewriteRule 指令),那么您还应该使用 mod_rewrite 进行重定向,而不是 mod_alias(例如 Redirect 指令)。您不应该在 .htaccess 中混合来自两个模块的重定向,因为您很容易发生冲突。不同的模块在不同的时间执行,无论它们在 .htaccess 中的顺序如何。

通过使用 mod_rewrite,您可以通过检查 THE_REQUEST 来避免重定向循环。例如:

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.html [NC]
RewriteRule ^index\.html$ / [R=301,L]

【讨论】:

  • 感谢 w3d,您在上面发布的 mod_rewrite 修复了我的错误!
猜你喜欢
  • 2011-11-02
  • 2018-02-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-19
  • 2019-07-17
  • 1970-01-01
相关资源
最近更新 更多