问一个apache做301重定向的问题

mush_me 2010-05-07 05:36:07
网站以前是动态的,后来听说动态页搜索不太友好。
就做了伪静态,服务器是apache的
旧的动态地址是:/news/newsDetail.do?investNewsId=14207
新的伪静态地址:/news/14207.html

做伪静态的配置是
RewriteRule /news/([0-9]+).html /news/newsDetail.do?investNewsId=$1 [PT]
RewriteRule /news/([0-9]+)_([0-9]+).html /news/newsDetail.do?investNewsId=$1&page=$2 [PT]
这样就可以通过新的地址来访问了,伪静态完成。
注意:第二条是翻页的伪静态

当完成这些后,出现了一个问题。
因为网站上线已经两年多了,以前的动态页都已经被搜索引擎收录了,而且有些动态页面的权重已经很高了。
想通过301把那些权重给转过来
于是做了以下配置
Redirect permanent /service/about.html http://localhost/service/about.jsp
这个是单页面的,没问题
因为apache手册上没有写带参数的301跳转,于是自己瞎写了一个
Redirect permanent /news/newsDetail.do?investNewsId=^([0-9]+)$ http://localhost/news/$1.html

结果没成功,当输入/news/14207.html时候,可以正常访问,但是输入/news/newsDetail.do?investNewsId=14207时候,没有跳转到/news/14207.html

不知道怎么写带参数的301跳转,麻烦会的指点下。
...全文
549 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
在-云端 2010-11-05
  • 打赏
  • 举报
回复
你试下下面的~~应该可以!
Redirect permanent /news/newsDetail\.do\?investNewsId=([0-9]+)$ http://localhost/news/$1.html
mush_me 2010-05-11
  • 打赏
  • 举报
回复
我要的是redirect,不是rewrite
rewrite没法传递链接权重的。
后来查了资料,经过自己测试,redirect确实没法加参数。
shine333 2010-05-07
  • 打赏
  • 举报
回复
你现在的是真静态了吗?如果没有,那么你这样要发生Redirect死循环的。

如果已经正的静态了,把原来url rewrite到过来就可以了

RewriteRule /news/newsDetail\.do\?investNewsId=([0-9]+)$ /news/$1.html [RL]
RewriteRule /news/newsDetail\.do\?investNewsId=([0-9]+)&page=([0-9]+)$ /news/$1_$2.html [RL]

R参数代表Redirect

24,923

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Apache
社区管理员
  • Apache
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧