0

我在一个旧的 CMS 中工作,它使用 htaccess 将带有 GET 变量的 URI 重写为更用户友好的东西。

RewriteEngine on
RewriteRule ^animals/(.*)/ secondary.php?page=$1
RewriteRule ^animals/(.*) secondary.php?page=$1

这导致(正确)

http://www.example.com/animals/duck

问题是我现在需要将其中一些页面重定向到新页面。我试过了:

Redirect 301 /animals/goose http://www.example.com/animals/fowl

重定向几乎可以工作,但它在重写的 URI 的末尾添加了“?page=goose”:

http://www.example.com/animals/fowl?page=goose

我试过使用 RewriteRule 和 RewriteCond,但不幸的是我没有运气。任何帮助将不胜感激。

4

1 回答 1

0

尝试将其放在其他规则之前,而不是 Redirect 语句。R=301用于重定向,并L表示所讨论的规则是要处理的最后一条规则。

RewriteRule ^animals/goose /animals/fowl [R=301,L]

此外,您还可以使用问号轻松地使斜线(就像任何其他字符一样)可选,而不是使用两个规则。

RewriteRule ^animals/(.*)/?$ secondary.php?page=$1
于 2011-03-23T02:32:50.403 回答