我经营一个游戏网站超过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
,那将是件好事。我已经搜查了谷歌,似乎很少有人关注这个问题。也许我不是在说它。 请帮忙。
答案 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-invasion
或www.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]