最近,我将我的网站从静态html更改为Wordpress,这样做的时候,只要Google向我显示抓取错误,我就一直使用.htaccess文件重定向所有以前的页面和不存在的页面。到目前为止,我已经成功地重定向了所有爬网错误。我的老人index.html
抛出了抓取错误,当我使用时:
Redirect 301 /index.html http://www.example.com
...我是从浏览器中得到的:
尝试打开www.example.com时发生太多重定向。如果您打开一个页面,该页面被重定向为打开另一个页面,然后该页面又被重定向为打开原始页面,则可能会发生这种情况。*
此后,我从.htaccess
文件中删除了上面的重定向,如果无法解决此问题,它将继续存在抓取错误。但是我在想有人知道如何解决此问题,如果可以,如果您让我知道如何解决,我将非常感谢。
如果将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]
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句