重写URLS而不影响旧的搜索引擎结果

时间:2014-12-22 12:02:05

标签: php apache .htaccess url-rewriting

我经营一个游戏网站超过5年,我目前正在从头开始重新设计。我当前的网站使用丑陋的网址(?gameid = 123)我想要美化(游戏/ 123)。 问题是我的网站被谷歌索引,我不想破坏旧网址,我不知道该怎么做。

与此同时,如果我可以更新显示在Google上的网址而不会破坏我在搜索结果中的排名,那将是一件好事。 所以目前,如果我查找“Bunny Invasion GPStudios”,最重要的结果是我的网站: www.gpstudios.com/playgame.php?gameid=29 如果我可以将其更新为www.gpstudios.com/games/29或www.gpstudios.com/games/bunny-invasion-2

,那将是件好事。

我已经搜查了谷歌,似乎很少有人关注这个问题。也许我不是在说它。 请帮忙。

3 个答案:

答案 0 :(得分:2)

您可以在root .htaccess中执行此操作:

RewriteEngine on 

# external redirect from actual URL to pretty one
RewriteCond %{THE_REQUEST} \s/+playgame\.php\?gameid=([^\s&]+) [NC]
RewriteRule ^ /games/%1? [R=302,L,NE]

# internal forward from pretty URL to actual one
RewriteRule ^games/(\d+)/?$ playgame.php?gameid=$1 [L,QSA,NC]

当测试工作正常时,更改[R=302] [R=301]

可以使用www.gpstudios.com/games/29/bunny-invasionwww.gpstudios.com/games/29/just-for-SEO等链接。 为此,只需更改没有?$的行:

RewriteRule ^games/(\d+)/ playgame.php?gameid=$1 [L,QSA,NC]

答案 1 :(得分:0)

首先,确保仍然可以访问旧网址。接下来,只需发送带有301(或其他一些适当的)响应的标题(请阅读有关响应代码的详细信息:http://en.wikipedia.org/wiki/List_of_HTTP_status_codes)并重定向到新网址,而不是提供页面。

您可以阅读PHP:header函数:http://php.net/manual/en/function.header.php

答案 2 :(得分:-1)

您必须使用从旧网址到新网址的301(永久)重定向。它被称为URL重写,是SEO行业中的常见问题。每个URL都应该“重新”到新页面。

在项目的根目录中使用.htaccess文件:

Redirect /old/url /new/url [L,R=301]

您可以使用正则表达式来简化工作:

Redirect /games/(\d+) playgame.php?gameid=$1 [L,R=301]

此处提供更多信息:http://www.beyondink.com/howtos/301-redirect.php