代码之家  ›  专栏  ›  技术社区  ›  Shawn

URL重写和重定向问题

  •  1
  • Shawn  · 技术社区  · 16 年前

    说我现在有网址,比如:

    http://mydomain.com/showpost.php?p=123

    现在我想让它更漂亮:

    http://mydomain.com/123/post-title

    我使用的是apache rewrite,它抓取段“123”并将URL放回

    http://mydomain.com/showpost.php?P=123

    好啊。这就是问题所在。我想把谷歌索引的原始非漂亮的网址重定向到漂亮的版本,因为我听说如果他看到多个网址指向相同的内容,谷歌可能会惩罚我。所以我需要

    重定向/showpost.php?P=123至/123/职务

    我必须在我的PHP代码中这样做,因为Apache无法计算出“post title”,但是如果我将重定向代码放在PHP代码中,那么它将是一个无限循环,例如:

    请求:/showpost.php?P=123

    已重定向至:“/123/文章标题”

    重写为/showpost.php?P=123

    再次重定向到:/123/文章标题

    等等。

    对不起,我应该先谷歌解决方案,但我真的不知道如何用英语描述我的情况,使谷歌返回合理的结果。

    请帮帮我。谢谢。

    1 回复  |  直到 16 年前
        1
  •  2
  •   Wyzard    16 年前

    通过添加类似于 [E=rewritten:true] RewriteRule 行,记录重写完成的事实。在您的PHP中,您应该能够以 $_SERVER['rewritten'] ,并且仅在不存在标志时执行重定向。

    或者,您可以使用重写规则将不漂亮的URL重定向到没有文章标题的漂亮的URL,然后使用应用程序代码发布另一个添加了文章标题的重定向。当然,使用两个重定向是不可取的,但这只是一个临时措施,直到搜索引擎更新其索引,然后您可以删除它。

    确保你使用301移动永久为你的重定向,顺便说一句。

    推荐文章