前一段时间(我认为是几年),我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重定向,它们仍然可以正常工作吗?
答案 0 :(得分:0)
/tags
URI的,但它肯定隐藏在您的网页中。现在要告诉搜索漫游器/tags
不存在,是对R=301
使用重定向规则:
RewriteEngine On
RewriteRule ^tags(/.*)?$ /tags.php [L,NC,R=301]
使用此301
规则搜索机器人,最终将放弃旧的/tags/
结果,并且只会记住/tags.php
。