怎么做到访问旧伪静态地址自动跳转到新伪静态地址呢?

2014-06-16 13:45:53 +08:00
 imrei
今天修改了dzx的伪静态链接,但杯具的想起旧地址流量众多。。。改完后严重影响SEO了,请问大家有没有什么办法设置伪静态规则自动识别旧规则跳转至新规则呢。。。
5757 次点击
所在节点    问与答
7 条回复
Mac
2014-06-16 14:01:46 +08:00
jasontse
2014-06-16 14:07:34 +08:00
信息量少的可怜。旧地址是什么,新地址又是什么。
imrei
2014-06-16 14:58:46 +08:00
@Mac 谢谢。。。不过按照他得方案,放进去无效。。。


@jasontse 老地址: http://www.imsyou.com/thread-658-1-1.html 新地址: http://www.imsyou.com/archives/658-1.html 请问改怎么设置跳转呢?
Livid
2014-06-16 15:00:34 +08:00
@imrei 用 web server 的 rewrite 为旧地址加 301 跳转。
imrei
2014-06-16 15:13:45 +08:00
@Livid T_T 就是写不来。。。我在.htaccess最下面添加过以下两种方案,都失败了
方案一:
RewriteRule ^forum-(\w+)-([0-9]+)\.html$ category/(\w+)-([0-9]+)\.html [R=301,L]
RewriteRule ^thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ archives/([0-9]+)-([0-9]+)\.html [R=301,L]

方案二:
RedirectMatch 301 ^forum-(\w+)-([0-9]+)\.html$ category/(\w+)-([0-9]+)\.html
RedirectMatch 301 ^thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ archives/([0-9]+)-([0-9]+)\.html

现有规则:
# 将 RewriteEngine 模式打开
RewriteEngine On

# 修改以下语句中的 /discuz 为您的论坛目录地址,如果程序放在根目录中,请将 /discuz 修改为 /
RewriteBase /

# Rewrite 系统规则请勿修改
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^topic-(.+)\.html$ portal.php?mod=topic&topic=$1&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^article-([0-9]+)-([0-9]+)\.html$ portal.php?mod=view&aid=$1&page=$2&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^forum-(\w+)-([0-9]+)\.html$ forum.php?mod=forumdisplay&fid=$1&page=$2&%1
RewriteRule ^category/(\w+)-([0-9]+)\.html$ forum.php?mod=forumdisplay&fid=$1&page=$2&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^index.html$ forum.php?mod=forumdisplay&fid=66
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ forum.php?mod=viewthread&tid=$1&extra=page\%3D$3&page=$2&%1
RewriteRule ^archives/([0-9]+)-([0-9]+)\.html$ forum.php?mod=viewthread&tid=$1&extra=page\%3D{prevpage}&page=$2&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^group-([0-9]+)-([0-9]+)\.html$ forum.php?mod=group&fid=$1&page=$2&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^space-(username|uid)-(.+)\.html$ home.php?mod=space&$1=$2&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^blog-([0-9]+)-([0-9]+)\.html$ home.php?mod=space&uid=$1&do=blog&id=$2&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^archiver/(fid|tid)-([0-9]+)\.html$ archiver/index.php?action=$1&value=$2&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^([a-z]+[a-z0-9_]*)-([a-z0-9_\-]+)\.html$ plugin.php?id=$1:$2&%1
ejin
2014-06-16 20:10:45 +08:00
我猜是这样的

RewriteRule ^forum-(\w+)-([0-9]+)\.html$ category/$1-$2.html [R=301,L]
RewriteRule ^thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ archives/$1-$2.html [R=301,L]
imrei
2014-06-16 20:18:19 +08:00
谢谢楼上几位,某个人的高人指点解决啦~解决方案:
http://www.mgrei.com/archives/304.html

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/117783

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX