2016-09-14 57 views
-1

当前我正在测试从开发域重定向到活动域的.htaccess重定向301功能不能从具有多个变量的链接工作到没有变量的链接

的问题是,从发展领域的联系是这样的:

/foo/bar?page=1&sortBy=name&sortOrder=asc 

和Live域是这样

http://www.livedomain.com/foo-bar.aspx 

我尝试了不同的版本,我不能老是设法使他们工作,例如:

全部用RewriteEngine On

  1. 带或不带/$RewriteRule图案的末尾:

    Redirect 301 /foo/bar?page=(.)&sortBy=(.*)&sortOrder=(.*)/$ http://livedomain.com/foo-bar.aspx 
    
  2. 同样,具有或不具有/$RewriteRule图案的末尾:

    Redirect 301 /foo/bar?page=([0-9]+)&sortBy=([a-zA-Z]+)&sortOrder=([a-zA-Z]+)/$ http://livedomain.com/foo-bar.aspx 
    
  3. And ...

    RewriteCond %{QUERY_STRING} ^page=([^&]+)&sortBy=([^&]+)&sortOrders=([^&]+)$ 
    RewriteRule /foo/bar?page=%1&sortBy=%2&sortOrder=%3 http://www.livedomain.com/foo-bar.aspx/? [QSA] 
    

他们不工作,有什么建议吗?

回答

1

您的重写规则不正确。您只使用查询字符串进行匹配,并且反向引用将使用替换字符串而不是模式。

给这个规则一试。

RewriteEngine on 
RewriteCond %{QUERY_STRING} ^page=(.+)&sortBy=(.+)&sortOrders=(.+)$ [NC] 
RewriteRule ^foo/bar$ http://www.livedomain.com/foo-bar.aspx/? [R=301,L] 
+0

对不起,但没有... –

+1

'对不起,但没有'告诉我什么都没有。什么不行?你有清除你的缓存吗?如果您使用的是确切的查询字符串,则该规则应该按照我测试过的方式工作。您需要提供更多详细信息和预期结果 –

+0

我的缓存已清除,但它不会重定向我... –