.htaccess url重写后重定向旧页面URL

时间:2012-06-13 09:04:25

标签: .htaccess mod-rewrite redirect rewrite rule

我用htaccess重写了我的网址,现在我想将旧网址重定向到新网址,但我终究无法弄清楚如何做到这一点。

这是我使用的重定向规则:

RewriteRule ^page/([^/]*)/$ /page.php?name=$1 [L]

旧网址如下:page.php?name = page-name

新网址如下所示:/ page / page-name /

1 个答案:

答案 0 :(得分:0)

当您想要使用GET参数重定向网址时,这有点复杂。

这是一个诀窍:

RewriteRule ^page\.php$ %{QUERY_STRING} [C]
RewriteRule name=(.*) /page/$1/? [R=301,L]

解释:

  • 首先,您将page.php?name=page-name重定向到?name=page-name
  • 然后,您要求对此结果使用以下规则(使用[C]标记)
  • 第三,您将page-name重定向,使用(.*)选择page/page-name/
  • 最后一招,如果您没有放置最后一个?,您的查询字符串将附加到您的结果中,您将拥有此类网址:page/page-name/?name=page-name。使用无用的?擦除旧的GET参数。

在这里找到一些信息: