我的.htaccess中有一条规则要解析这样的网址:
https://www.myweb.com/folder/ABCD/HIJK/wxyz/?dclid=Tzf3YrswCFZNmGwodtrALQg
进入这个:
https://anotherweb.com/folder/?param1=ABCD¶m2=HIJK¶m3=wxyz&dclid=Tzf3YrswCFZNmGwodtrALQg
" ABCD"可以是任何字符串或空。 " 1234"可以是任何字符串。 " WXYZ"可以是任何字符串。
因此,如果第一个参数为空,也可能发生这种情况:
https://www.myweb.com/folder//HIJK/wxyz/?dclid=Tzf3YrswCFZNmGwodtrALQg
这是我的.htaccess中的重写:
RewriteRule ^folder/([^/]*)/([^/]+)/([^/]+)/ https://anotherweb.com/folder/?param1=$1¶m2=$2¶m3=$3 [L,QSA]
在第一个参数(" ABCD"在前面的示例中)不为空的所有情况下,一切都正常。
但是当那个参数不为空并且我们收到...folder//HIJK/...
时,它无法将param1解析为空,我得到一个404 http代码。
我认为正则表达式的这部分([^/]*)
可以解决问题,但似乎我在这里遗漏了一些东西。
有人可以帮我吗?
谢谢!
答案 0 :(得分:0)
RewriteEngine On
RewriteRule ^folder/([^/.]*)/([^/.]+)/([^/.]+)/ https://anotherweb.com/folder/?param1=$1¶m2=$2¶m3=$3&%{QUERY_STRING} [L]
请检查上述代码是否按预期工作。