如何使用.htaccess将具有多个参数的url重写为新url

时间:2014-07-04 12:33:00

标签: .htaccess redirect

我已将我的网站从asp重写为php。我需要使用多个参数重定向几页。

以下是一些旧网址:

mysite.co.uk/productlist_paged.asp?cid=1&offset=10
mysite.co.uk/productlist_paged.asp?cid=1&offset=20
mysite.co.uk/productlist_paged.asp?cid=1&offset=30
mysite.co.uk/productlist_paged.asp?cid=1&offset=40

到以下新页面:

mysite.co.uk/Compare/Roland-Digital-Pianos/43/1
mysite.co.uk/Compare/Roland-Digital-Pianos/43/2
mysite.co.uk/Compare/Roland-Digital-Pianos/43/3
mysite.co.uk/Compare/Roland-Digital-Pianos/43/4

我希望保留重定向中的数字43,因为这个数字会在添加/删除产品时发生变化。 cid = 1等于Roland-Digital-Pianos,例如offset = 10是url末尾的数字

欢迎任何帮助

1 个答案:

答案 0 :(得分:0)

你可以选择以下内容:

RewriteEngine On

RewriteCond %{QUERY_STRING} cid=1&offset=([0-9]+)0
RewriteRule ^productlist_paged.asp$ /Compare/Roland-Digital-Pianos/43/%1? [R=301,L]

0的末尾有一个额外的RewriteCond,否则,%1将是1020而不是12

最后的额外?会删除重定向网址中的QUERY_STRING

注意:我没有在^中添加$RewriteCond,因此您的网址不一定以{{1}开头/结尾} {} QUERY_STRING也适合productlist_paged.asp?test=1&cid=1&offset=10&test2=1并重定向。

希望它有所帮助!