Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用.htaccess将具有多个参数的url重写为新url_.htaccess_Redirect - Fatal编程技术网

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

如何使用.htaccess将具有多个参数的url重写为新url,.htaccess,redirect,.htaccess,Redirect,我已经将我的网站从asp改写为php。我需要用多个参数重定向一些页面 以下是一些旧url: 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=

我已经将我的网站从asp改写为php。我需要用多个参数重定向一些页面

以下是一些旧url:

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等于罗兰数字钢琴,例如offset=10是url末尾的数字1


欢迎任何帮助

您可以使用以下内容:

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
,否则,
%1
将是
10
20
,而不是
1
2

最后的额外
删除重定向url中的
查询字符串

注意:我没有在
RewriteCond
中添加
^
$
,这样您的url就不必以这个
QUERY\u字符串开始/结束,即
productlist\u paged.asp?test=1&cid=1&offset=10&test2=1
也将适合
RewriteCond
并被重定向


希望有帮助

很高兴它成功了!请注意,不可能(或者我不知道如何)处理
43
号码问题,因为您不知道,当您的asp url被调用时,它是什么号码。