mod_rewrite显示新URL的内部重写

时间:2011-06-04 00:39:04

标签: apache .htaccess mod-rewrite redirect url-rewriting

我正在使用Mod_Rewrite将一些旧页面重写(内部)到我网站上的新页面。

这有效:

RewriteRule ^thispage\.html$ thatpage.html 

问题是页面更改为新页面(这很好!),但不会将(URL)名称从“thispage”更改为“thatpage”,因此用户会被提示到新地址。 Apache(2.x)声明在上述脚本之后放置[R],即

RewriteRule ^thispage\.html$ thatpage.html [R]

这应该让用户知道它已被更改并将它们发送到新页面。

当我添加[R]时,我收到500错误。服务器是Apache / 1.3.33。

我认为强制服务器显示新网址的唯一方法是使用重定向而不是重写。有什么想法吗?

真心感谢任何帮助!

2 个答案:

答案 0 :(得分:2)

你试过这个吗?

RewriteRule ^thispage.html$ thatpage.html [R=301,L]

或者,重定向在服务器上比重写更容易......

Redirect 301 thispage.html http://yourDomain.com/thatpage.html

答案 1 :(得分:0)

如果不显示新网址,则必须删除[R],因为 [R]用于显示新网址