2016-04-28 67 views
0

我有一个规则,我的.htaccess重写规则星号量词来分析这样的URL:的.htaccess不工作

https://www.myweb.com/folder/ABCD/HIJK/wxyz/?dclid=Tzf3YrswCFZNmGwodtrALQg 

到这一点:

https://anotherweb.com/folder/?param1=ABCD&param2=HIJK&param3=wxyz&dclid=Tzf3YrswCFZNmGwodtrALQg 

“ABCD” 可能是任何字符串或者清空。 “1234”可以是任何字符串。 “wxyz”可以是任何字符串。

所以,这也可能发生,如果第一个参数为空:

https://www.myweb.com/folder//HIJK/wxyz/?dclid=Tzf3YrswCFZNmGwodtrALQg 

这是我的.htaccess中的重写规则:

RewriteRule ^folder/([^/]*)/([^/]+)/([^/]+)/ https://anotherweb.com/folder/?param1=$1&param2=$2&param3=$3 [L,QSA] 

而且一切都在所有的情况下工作得很好,第一个参数(前面例子中的“ABCD”)不是空的。

但是,当该参数不是空的,我们收到...folder//HIJK/...它不能解析param1为空,我得到一个404的http代码。

我认为这部分([^/]*)的正则表达式会做的伎俩,但似乎我在这里失去了一些东西。

有人可以帮我吗?

谢谢!

回答

0
RewriteEngine On 
RewriteRule ^folder/([^/.]*)/([^/.]+)/([^/.]+)/ https://anotherweb.com/folder/?param1=$1&param2=$2&param3=$3&%{QUERY_STRING} [L] 

请检查上面的代码是否按预期工作。