使用.htaccess将带有查询字符串的一个页面重定向到另一个页面

时间:2014-04-09 00:14:59

标签: php .htaccess redirect

从现有页面重定向到另一页面时出现问题。我有网址:

http://www.thedomain.com/webpage-themission.php?wp=The%20Mission

我希望将其重定向到:

http://www.thedomain.com/webpage.php?wp=The%20Mission

我试过了:

RewriteEngine On
RewriteRule ^/webpage-themission.php?wp=The%20Mission$ http://thedomain.com/webpage.php?wp=The%20Mission$1 [L,R=301]

和许多其他组合,但没有这样的运气,任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:1)

您不应在重定向规则中包含查询字符串,因为它根本不会被评估。

试试这个:

RewriteEngine On
RewriteRule ^/?webpage-themission\.php$ http://thedomain.com/webpage.php [L,R=301,QSA]

一些注意事项:

  • 请务必注意指定的QSA标志。这样可以将查询字符串wp=The%20Mission附加到重定向的URL。
  • 我还转义了匹配规则中的.,因此它不会像通配符一样,并允许重定向/webpage-themissionXphp
  • 之类的内容
  • 我将?放在初始反斜杠之后,通常在目录上下文(即.htaccess)中,不比较正斜杠,这意味着该规则需要^webpage...。放置/?使规则在目录上下文和服务器上下文(即httpd.conf)中都有效。

答案 1 :(得分:0)

请将此添加到.htaccess文件

Redirect 301 http://www.thedomain.com/webpage-themission.php?wp=The%20Mission http://www.thedomain.com/webpage.php?wp=The%20Mission