我有一个像http://www.example.com/?product=test&retailer=test&site=test
这样的网址在这种情况下(产品参数存在)我删除& site = test但保持其余的url不变。
如果产品参数不存在,例如http://www.example.com/?retailer=test&site=test
我删除了& site = test并将?retailer = test更改为/ retailer / test,因此完整的网址将为http://www.example.com/retailer/test。我也只是在根域发生这种情况。
我使用这些规则
# first condition
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteCond %{QUERY_STRING} ^product=([^&\s]+)&retailer=([^&\s]+)&site=test$ [NC]
RewriteRule ^$ /?product=%1&retailer=%2 [R=301,L]
# second condition
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteCond %{QUERY_STRING} ^retailer=([^&\s]+)&site=test$ [NC]
RewriteRule ^$ /retailer/%1? [R=301,L]
关于第二条规则当url被重写为/ reatiler / test时,有可能在这个实例中进行/ retailer / test + test我需要将其更改为/ retailer / test-test也可以/零售商/测试+测试+测试需要/零售商/测试测试
对此的帮助将非常感激
答案 0 :(得分:1)
您可以使用ftp.exe
标记(更多信息here):
N
请注意,这实际上是等效的,因为此处涉及重定向:
RewriteRule ^retailer/(.*)\+(.*)$ /retailer/$1-$2 [N,R=301]
所以最后你的htaccess看起来应该是这样的
RewriteRule ^retailer/(.*)\+(.*)$ /retailer/$1-$2 [R=301,L]