正则表达式匹配域/ u&域/ u /用户名,但不是域/用户

时间:2015-03-11 19:40:03

标签: regex apache .htaccess mod-rewrite

标题说明了一切,但我会再解释一下:

以下匹配:

  
      
  • domain / u = domain / user.html
  •   
  • domain / u / usermame = domain / user.html?u = username
  •   
  • domain / u / = domain / user.html
  •   

以下不应匹配:

  
      
  • 域/用户
  •   
  • domain / u(此处的任何其他字符,例如universe | uvwxyz)
  •   

我已经接近了,但我无法弄清楚如果它后面没有任何东西或者是斜线,那么它是如何匹配的。如果它之后是斜线,那么在斜线后面会有什么斜线。

我正在尝试在.htaccess中使用mod_rewrite将domain/user.html?u=xxx转换为domain/u/xxx

2 个答案:

答案 0 :(得分:0)

这个怎么样:

^domain\/u($|\/$|\/(?<username>.+)$)

用户名由命名组username

捕获

答案 1 :(得分:0)

我找到了解决方案,如下:

RewriteRule ^http://www.example.com\/u(\/(?<username>.+)$) user.html?u=username [L]
RewriteRule ^(u/$|u$) user.html [NC,L]

您可能已经注意到,第一行来自Cyber​​Dude的回答,我添加了第二行来阻止example.com/u&amp; example.com/u/简单地来自404'ing