【发布时间】:2016-04-28 11:27:49
【问题描述】:
我的 .htaccess 中有一条规则可以解析这样的 URL:
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 代码。
我认为正则表达式的这部分([^/]*) 可以解决问题,但似乎我在这里遗漏了一些东西。
有人可以帮帮我吗?
谢谢!
【问题讨论】:
标签: apache .htaccess mod-rewrite