为什么这个简单的RewriteRule不再起作用,为什么Google一直看到它?

时间:2019-08-07 20:02:25

标签: .htaccess url-rewriting

前一段时间(我认为是几年),我htaccess中的这个简单的RewriteRule停止了工作。

RewriteRule tags/ tags.php [L]

它工作了好几年,然后在服务器更改或服务器升级或切换到php-fpm(我不记得了)的第二天,它就停止了工作。

我通过删除它来解决它,并将所有链接直接发送到tags.php文件。

此规则是我用于许多网站的小型CMS的一部分。网站正常工作,一切正常。

但是当我创建一个新网站时,准时出现了,几天后Google向我发送了一条警告,告诉我URL mysite.com/tags/会产生错误404。

这很奇怪,因为URL mysite.com/tags/在我的网站或站点地图中已经不存在多年了,我敢肯定,因为它在我的网站的主菜单中仅使用过一次,并且已替换为mysite.com/tags.php。 最重要的是,它不能存在于新站点中。最初,我在旧站点上并没有对其进行太多关注。谷歌可能已经在旧站点中看到了它,但还没有忘记它,但是肯定在新站点中没有看到它。

所以,我有几个未解决的问题。

首先要理解的也许是最重要的理解:谷歌如何看待URL mysite.com/tags/?谷歌是否有可能阅读我的htaccess信息,以了解我将要创建哪种网址?

第二:如何永久解决问题?

--------------------------更新-------------------- -

抱歉,我答复延迟(暑假)。

关于anubhava的答案,我有一个疑问,但这是我的错,也许我省略了部分代码。

下一条规则是:

RewriteRule ^tags-([^/]+)\/$ tags.php?letter=$1 [L]

并使工作类似以下网址: mysite.com/tags-k /

这些网址有效,但如果我在tags.php上添加301重定向,它们仍然可以正常工作吗?

1 个答案:

答案 0 :(得分:0)

  1. 否,Google(或任何其他)搜索机器人无法读取您的.htaccess
  2. 很难弄清楚搜索机器人是如何找到/tags URI的,但它肯定隐藏在您的网页中。

现在要告诉搜索漫游器/tags不存在,是对R=301使用重定向规则:

RewriteEngine On

RewriteRule ^tags(/.*)?$ /tags.php [L,NC,R=301]

使用此301规则搜索机器人,最终将放弃旧的/tags/结果,并且只会记住/tags.php