2016-09-14 54 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

我的緩存已清除,但它不會重定向我... –