【问题标题】:.htaccess rewriterule asterisk quantifier not working.htaccess rewriterule 星号量词不起作用
【发布时间】:2016-04-28 11:27:49
【问题描述】:

我的 .htaccess 中有一条规则可以解析这样的 URL:

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 代码。

我认为正则表达式的这部分([^/]*) 可以解决问题,但似乎我在这里遗漏了一些东西。

有人可以帮帮我吗?

谢谢!

【问题讨论】:

    标签: apache .htaccess mod-rewrite


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

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

    【讨论】:

      猜你喜欢
      • 2012-12-10
      • 1970-01-01
      • 2012-12-30
      • 1970-01-01
      • 1970-01-01
      • 2013-06-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多