说我目前的网址是:
http://mydomain.com/showpost.php?p=123
现在我想让它变得更漂亮:
http://mydomain.com/123/post-title
我正在使用apache重写来抓取段'123'并将网址放回
http://mydomain.com/showpost.php?p=123
行。这是问题所在。我想将由Google编入索引的原始非漂亮网址重定向到漂亮的版本,我想要这个,因为我听说如果他看到多个网址指向相同的内容,谷歌可能会惩罚我。所以我需要
重定向/showpost.php?p=123到/ 123 / post-title
我必须在我的PHP代码中执行,因为Apache无法找出'post-title',但是如果我将重定向代码放在php代码中,那么它将是一个无限循环,例如as:
请求:/showpost.php?p = 123
重定向到:/ 123 / post-title
重写为:/showpost.php?p = 123
再次重定向到:/ 123 / post-title
...
等等。
抱歉,我应该首先解决Google问题,但我真的不知道如何用英语描述我的情况,以使Google获得合理的结果。
请帮帮我。感谢。
答案 0 :(得分:2)
您可以在重写规则中设置请求变量,方法是在[E=rewritten:true]
行的末尾添加RewriteRule
之类的内容,以记录重写已完成的事实。在您的PHP中,您应该能够以$_SERVER['rewritten']
访问它,并且仅在没有该标志时才进行重定向。
或者,您可以使用重写规则将非漂亮URL重定向到没有帖子标题的漂亮URL,然后使用应用程序代码发出添加了帖子标题的另一个重定向。当然,使用两个重定向是不太可取的,但它只是一个临时措施,直到搜索引擎更新它们的索引,然后你可以删除它。
请确保您使用301 Moved Permanently进行重定向,顺便说一句。