2017-04-25 166 views
0

我一直在寻找这方面的几个不同的问题来处理这个问题,但没有一个完全按照我需要的方式工作。.htaccess部分查询字符串重写

拿这个网址,例如:

http://example.com/not-right-contact?portal=9648&... 

电子邮件与该门户ID发送出去,但它是不正确的。所以,现在我们需要替换它并正确地重定向URL。在门户查询字符串的后面,有许多字段将预填充此页面上的表单。我们需要保持这些完好无损。

以下是我已经从多个来源拼凑起来:

RewriteCond %{QUERY_STRING} (^|&)?portal=9648 
RewriteRule ^(.*)$ /not-right-contact?portal=9654%1%2 [L,NE] 

这是没有做任何事情。有一次,我把URL重写为最后的portal = 9654,但它没有附加任何附加变量。非常感谢帮助。

UPDATE

使用Manipulating the Query String作为参考,我已经改变了我重写为以下内容:

RewriteCond %{QUERY_STRING} ^(.*)portal=9648(.*)$ 
RewriteRule (.*) /not-right-contact?%1portal=9654%2 [L] 

重写被附加的查询字符串数据投入的形式,而是价值门户网站查询字符串仍然没有改变。每当我将规则的第一个值更改为除(。*)或。?之外的任何值时,我都会收到HTTP 500错误。

回答

2

使用[L,QSA]在重定向url的末尾保留并追加查询字符串

+0

不幸的是,没有。添加QSA会创建一个HTTP 500错误。 –