首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >301在Apache上从旧页面重定向到新页面不起作用

301在Apache上从旧页面重定向到新页面不起作用
EN

Stack Overflow用户
提问于 2011-09-20 15:00:24
回答 2查看 12.9K关注 0票数 3

简单的301重定向在这种情况下不起作用-例如:

代码语言:javascript
运行
AI代码解释
复制
Redirect 301 /oldpage http://www.mysite.co.uk/newsubdir/newpage

该网站是动态的,.htaccess已经将页面从包含查询字符串的网址重命名为搜索引擎友好的网址。

代码语言:javascript
运行
AI代码解释
复制
RewriteRule ^(.*)/(.*)$  index.php?page_name=$1&sub=$2 [NC,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$
RewriteRule (.*)([^/])$ http://www.mysite.co.uk/$1$2/ [R=301,L]

当我们在相同的.htaccess (在底部)中使用上面的301重定向时,页面是重定向的,但是查询字符串被添加到URL的末尾,这令人沮丧,我们还没有弄清楚为什么或如何阻止它。

经过301重定向后,URL如下所示:

代码语言:javascript
运行
AI代码解释
复制
http://www.mysite.co.uk/newsubdir/newpage/?page_name=old-page&sub=

...Causing一个404错误--只是添加在URL末尾的查询字符串破坏了重定向。

请任何人可以建议需要做些什么来解决这个问题?

谢谢

EN

回答 2

Stack Overflow用户

发布于 2011-09-21 08:47:24

在URL末尾添加问号?,以防止现有查询字符串被复制到新的URL:

代码语言:javascript
运行
AI代码解释
复制
Redirect 301 /oldpage http://www.mysite.co.uk/newsubdir/newpage?

但由于您已经在使用mod_rewrite,我建议您也将其用于此任务(将此规则置于其他重写规则之上):

代码语言:javascript
运行
AI代码解释
复制
RewriteRule ^oldpage$ http://www.mysite.co.uk/newsubdir/newpage? [R=301,L]
票数 5
EN

Stack Overflow用户

发布于 2018-04-03 06:19:52

重定向301 /oldfile.htm http://www.example.com/newfile.htm

使用它。工作正常。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7487331

复制
相关文章

相似问题

领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文