基本上,我发送了一个查询字符串,我需要将其重新格式化为一个URL,其中值由斜线除,并且其中的点被清除掉其中一个值。我可以做其中任何一件事,但是当我尝试将它们连在一起时,它就不起作用了。
以下是原始网址
https://www.example.com/?id1=5&id2=7&id3=9&id4=7&id5=source.website.com&id6=5
这就是我现在所拥有的......
# Takes the dots and replaces name of server
RewriteCond %{QUERY_STRING} ^(.*source.website.com.*)$
RewriteCond %{QUERY_STRING} (.*id5=).*(id6=.*)$
RewriteRule ^(.*) %1newwebsitecom&%2?
# Rewrites Query to URL
RewriteCond %{QUERY_STRING} ^id1=(\w+)&id2=(\w+)&id3=(\w+)&id4=(\w+)&id5=([a-zA-Z0-9\.\%]+)&id6=(\w+)
RewriteRule ^(.*) https://www.example.com/dir/%1/%2/%3/%5/%6?
另外,这两项都有效。但是,第二个规则只是接受查询并执行操作,就像第一个从未发生过一样。我该如何解决这个问题?
答案 0 :(得分:1)
您是否尝试过合并这两条规则?
我已在htaccess.madewithlove.be上测试了此规则集,似乎达到了预期效果。
RewriteCond %{QUERY_STRING} ^(.*source.website.com.*)$
RewriteCond %{QUERY_STRING} (.*id5=).*(id6=.*)$
RewriteCond %{QUERY_STRING} ^id1=(\w+)&id2=(\w+)&id3=(\w+)&id4=(\w+)&id5=([a-zA-Z0-9\.\%]+)&id6=(\w+)
RewriteRule ^(.*) https://www.example.com/dir/%1/%2/%3/%4/newwebsitecom/%6?