来自两个组中的url的文件名和查询字符串的正则表达式

时间:2014-06-23 20:02:34

标签: regex mod-rewrite

我正在尝试使用正则表达式编写mod_rewrite规则,并且对于涉及的某些过程我有点绿。

我相信如果我能弄明白如何正确使用这个正则表达式,我可以做我想做的事。

String is http://www.a.com/b.css?v=1234

我知道我可以用正则表达式获得b.css?v = 1234

([^\/]+$)

我正在寻找的是它分组,以便%1是b.css而%2是1234.任何帮助都表示赞赏。感谢。

2 个答案:

答案 0 :(得分:0)

根据您提供的网址:

http://www.a.com/b.css?v=1234

您可以使用:

/(\w+\.\w{3})\?v=(\d+)

Regular expression visualization

Debuggex Demo

对于java,请记住将反斜杠转义为:

/(\\w+\\.\\w{3})\\?v=(\\d+)

希望能提供帮助

答案 1 :(得分:0)

您需要条件和一个或多个规则。

在Apache 2.2和2.4上测试的几种方法之一:

RewriteCond %{QUERY_STRING} v=(\d+)
RewriteRule ^([^/]*) DoSomethingWithFile_$1_AndDigits_%1?
  • 输入网址:www.yoursite.com/b.css?v=1234
  • %1包含1234
  • $1包含b.css
  • 重写网址:www.yoursite.com/DoSomethingWithFile_b.css_AndDigits_1234