使用 301 重定向重定向 404 是将现有页面重定向到主页

Posted

技术标签:

【中文标题】使用 301 重定向重定向 404 是将现有页面重定向到主页【英文标题】:Redirecting 404 using 301 redirect is redirecting existing pages to Home page 【发布时间】:2017-08-07 09:04:44 【问题描述】:

我刚刚重新开发了我的一个网站。结构发生了变化,因此我需要全局重定向当前仍在 Google 上排名的 旧的不存在 页面(大约 50 个页面),以重定向到我的新网站的 HOME PAGE .

结构基本上从页面发生了变化-示例:

www.website.com/page1.php www.website.com/page2.htm www.website.com/page3.php ...等等

www.website.com/page1/ www.website.com/page2/ www.website.com/page3/ ...等等

经过一番谷歌搜索,我在 SO 上看到了这个 solution

当我添加时:

RewriteEngine on
RewriteCond %REQUEST_FILENAME !-f
RewriteRule . / [L,R=301]

到我的.htaccess 文件,不存在页面的重定向(到主页)有效 - 太好了!

但是现在我的新网站(存在)上的导航/侧面板中的每个链接也被重定向到主页。所以我无法浏览我的网站!

因此,例如,当我单击关于我们的链接 www.website.com/about-us/ 或我的其他 50 个页面中的任何其他页面(无论它们的名称如何)时,上面的 301 重定向解决方案会不断将我重定向到主页(就好像这些页面不存在一样)。

我想全局重定向当前仍在 Google 上排名的 不存在的旧页面(大约 50 个页面)重定向到我的新网站的 主页 .. . 不是我网站的现有链接。

这是为什么?我认为使用 301 方法的 404 重定向只会针对不存在的页面。

我做错了什么吗?

【问题讨论】:

编写一个 404 页面并使用 .htacess 设置您的自定义 404 页面并在该页面上设置重定向到您喜欢的任何页面 什么是about-us?是目录还是文件,还是about-us.php @OlafDietsche ... 一个目录文件www.website.com/about-us/,index.php 是/about-us/ 目录中的默认页面 【参考方案1】:

要将 /page.php 重定向到 /page ,您可以使用以下命令:

RewriteEngine on
RewriteCond %ENV_REDIRECT_STATUS !200
RewriteRule ^(.+)\.php$ /$1 [L,R,NE]

您可以将 R 更改为 R=301 以使重定向永久化。

【讨论】:

我试图找出为什么导航中的新网站链接正在解析/重定向到带有RewriteEngine on RewriteCond %REQUEST_FILENAME !-f RewriteRule . / [L,R=301]的主页 这是因为您的规则,因为它将除现有文件之外的所有内容都重写为 / 。 我也在谈论将 any 不存在的页面(仍然在 Google 上排名)全球重定向到我的主页......而不是 1 个特定页面。我真正的问题是我现有的网站链接不起作用(它们被视为不存在 - 请参阅我的帖子) "它会将除现有文件之外的所有内容重写为 /" ...但我的问题是它也在重写现有文件【参考方案2】:

规则应用如下

    检查 about-us 是否与模式 . 匹配,是的。 检查条件是否匹配,%REQUEST_FILENAME !-f。它是一个目录,所以是的,它不是一个文件。 一切都匹配 -> 应用规则。

如果您不希望目录匹配,您可以这样说

RewriteCond %REQUEST_FILENAME !-d

所以完整的重写规则是

RewriteCond %REQUEST_FILENAME !-f
RewriteCond %REQUEST_FILENAME !-d
RewriteRule . / [L,R]

当一切正常时,您可以将R 替换为R=301 (permanent redirect)。 从不R=301测试。

【讨论】:

以上是关于使用 301 重定向重定向 404 是将现有页面重定向到主页的主要内容,如果未能解决你的问题,请参考以下文章

SEO - 通过 404 页面重定向 301

SEO - 301重定向通过404页面

htaccess 301 与重定向 404

使用 RewriteRules 和 404 进行 301 重定向

网站建设之网站301重定向跳转及对介绍

Isapi Rewrite 301 重定向解析为 404 - 循环引用?