重定向301功能不能从具有多个变量的链接工作到没有变量的链接
问题描述:
当前我正在测试从开发域重定向到活动域的.htaccess
。重定向301功能不能从具有多个变量的链接工作到没有变量的链接
的问题是,从发展领域的联系是这样的:
/foo/bar?page=1&sortBy=name&sortOrder=asc
和Live域是这样
http://www.livedomain.com/foo-bar.aspx
我尝试了不同的版本,我不能老是设法使他们工作,例如:
全部用RewriteEngine On
-
带或不带
/$
上RewriteRule
图案的末尾:Redirect 301 /foo/bar?page=(.)&sortBy=(.*)&sortOrder=(.*)/$ http://livedomain.com/foo-bar.aspx
-
同样,具有或不具有
/$
上RewriteRule
图案的末尾:Redirect 301 /foo/bar?page=([0-9]+)&sortBy=([a-zA-Z]+)&sortOrder=([a-zA-Z]+)/$ http://livedomain.com/foo-bar.aspx
-
And ...
RewriteCond %{QUERY_STRING} ^page=([^&]+)&sortBy=([^&]+)&sortOrders=([^&]+)$ RewriteRule /foo/bar?page=%1&sortBy=%2&sortOrder=%3 http://www.livedomain.com/foo-bar.aspx/? [QSA]
他们不工作,有什么建议吗?
答
您的重写规则不正确。您只使用查询字符串进行匹配,并且反向引用将使用替换字符串而不是模式。
给这个规则一试。
RewriteEngine on
RewriteCond %{QUERY_STRING} ^page=(.+)&sortBy=(.+)&sortOrders=(.+)$ [NC]
RewriteRule ^foo/bar$ http://www.livedomain.com/foo-bar.aspx/? [R=301,L]
对不起,但没有... –
'对不起,但没有'告诉我什么都没有。什么不行?你有清除你的缓存吗?如果您使用的是确切的查询字符串,则该规则应该按照我测试过的方式工作。您需要提供更多详细信息和预期结果 –
我的缓存已清除,但它不会重定向我... –