Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用.htaccess将带有查询字符串的一个页面重定向到另一个页面_Php_.htaccess_Redirect - Fatal编程技术网

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

Php 使用.htaccess将带有查询字符串的一个页面重定向到另一个页面,php,.htaccess,redirect,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.

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

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]

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

请将其添加到.htaccess文件中

Redirect 301 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$ http://thedomain.com/webpage.php [L,R=301,QSA]
请注意:

  • 请务必注意指定的
    QSA
    标志。这将产生将查询字符串
    wp=%20Mission
    附加到重定向URL的效果
  • 我还对匹配规则中的
    进行了转义,这样它就不会表现为通配符,并允许在类似
    /webpage的任务xphp
  • 我将
    放在初始反斜杠之后,通常在目录上下文(即.htaccess)中,不比较正斜杠,这意味着规则必须是
    ^webpage…
    。放置
    /?
    可以使规则在目录上下文和服务器上下文(即httpd.conf)中工作

嘿,伙计,谢谢你,我试过了,但什么也没发生。查询字符串很重要,因为它决定了要为任何给定页面(旧学校网站)提取哪些内容。webpage-themission.php和webpage.php是使用的模板。只是为了提供更多信息。@AkiraDawson在使用
QSA
标志时,查询字符串将与重写一起传递。你确定你已经为这个目录正确地指定了AllowOverride,这样就可以使用
.htaccess
文件了吗?哦,不,我现在得到了一些东西,结果是%25从哪里来?抱歉,未看到您对答案进行了编辑。这就解释了困惑@AkiraDawson不幸的是,您遇到了双重编码问题,
%
在重定向时被编码为
%25
。实际上,您可能需要检查查询字符串并修复空格。查看此问题以获取帮助-最好的解决方案是避免将需要urlencoding的字符放入URI或查询字符串中。感谢您的帮助,我最终将[L,R=301,QSA]更改为[L,R=301,QSA,NE,N],重定向正在工作。我现在没有双重编码的问题。