通过301重定向404错误以便于SEO等。使用.htaccess进行重定向。

35

我找不到一个直接的答案,需要从真正的专家那里获得答案。

我有一个网站,URL是由Joomla生成的。我相信搜索引擎中有大量的URL,但我真的不知道其中哪些需要重定向。使用302重定向是一种选择,但我无法确定哪些URL需要重定向。

我唯一知道的是所有的URL都是由sef404脚本生成的,这是Joomla的SEO脚本。

我的问题是,如何通过.htaccess文件确保所有谷歌和其他搜索引擎上孤儿链接都可以正确地访问?

如何将所有404页面301重定向到主页(根文档)

目前我使用自定义的404.html错误文件,但文件太多了,会给用户带来过多不必要的错误信息。

2个回答

50

1
这将会将所有的404页面进行301重定向到您喜欢的任何位置,在之前的解决方案中是302。 - andrew
3
这应该是答案,因为另一个答案只是重写而不是重定向+1。 - TheBlackBenzKid
1
对于任何想知道为什么这个代码能够像我一样工作的人(https://httpd.apache.org/docs/2.2/mod/mod_rewrite.html):第一行打开了RewriteEngine,第二行设置了第三行的条件,确保它是一个不存在的文件并传递请求的文件名(使用服务器变量(%{})),第三行匹配所有内容,将其替换为根目录,并设置两个标志,第一个(L)停止应用任何其他重写规则,第二个(R = 301)强制使用错误代码301进行外部重定向。 - Andrew

38

你需要了解URL相关的一些信息,比如它们是否有特定的目录或某些查询字符串元素,因为你需要匹配这些信息。否则,你将不得不在404错误时进行重定向。如果确实需要这样做,请在你的.htaccess文件中执行以下操作:

ErrorDocument 404 /index.php

错误页面重定向必须相对于根目录,因此您不能使用www.mydomain.com。

如果您还有要匹配的模式,则使用301而不是302,因为301是永久性的,而302是临时的。 301将从搜索引擎中删除旧的URL,而302则不会。

Mod Rewrite 参考资料:http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html


9
由于这不是重定向,所以应该使用减号。 - TheBlackBenzKid

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接