mod_rewrite .htaccess重定向查询字符串的一部分

时间:2010-11-09 11:33:53

标签: php .htaccess mod-rewrite query-string

我正在努力解决重定向问题。我需要使用mod_rewrite彻底重定向以下URL .htaccess

http://www.mysite.com/somescript.php?&lang=php&var=1&var=2

以下

http://www.mysite.com/somescript.php?lang=php&var=1&var=2

所以,基本上我只需要删除

&

lang=php

但是,顺序很重要。有时

&lang=php

出现在查询字符串中的其他变量之后。在这种情况下,我需要

&

保持

的一部分
&lang=php

这可能吗?

总而言之,如果& lang = php出现在查询字符串的开头,请删除&amp ;.如果& lang = php出现在查询字符串中的任何其他位置,则&必须保持。

希望这很清楚!

我会自己更改脚本但不幸的是我不是开发人员,而且他现在似乎没有太大帮助;这是一个快速修复。

2 个答案:

答案 0 :(得分:1)

为什么不匹配"?&"并将其替换为"?"

类似的东西:

RewriteRule ^(.*)?&(.*) $1?$2 [L]

(未经测试)

因为我认为组合"?&"永远不会有效......(?)

答案 1 :(得分:1)

我会将?&替换为?

RewriteCond %{QUERY_STRING} ^\&(.*)$
RewriteRule ^somescript\.php$ /somescript.php?%1 [L,R=301]