AliasMatch:匹配所有,除非哈希

时间:2016-04-13 23:29:17

标签: angularjs regex ubuntu webserver apache2

Apache2,Ubuntu,/ etc / apache2 / sites -available / default.conf

只有1号需要别名,2号不需要。 我需要一个AliasMatch正则表达式,用@ /#省略任何url,否则将$ 1传递给new / path / $ 1

  1. url.com/some_dir
  2. url.com /#/ some_dir
  3. 我尝试过以下方法:第一种方法重定向1和2,因为(。*)。第二个根本不起作用。第三个也不起作用,但我试图匹配字母数字字符,默认情况下省略#,它也不起作用。

    AliasMatch "(?i)^/(.*)$" "/new/path/$1"
    AliasMatch "(?i)^((?!#).)*$" "/new/path/$1"
    AliasMatch "^/[a-zA-Z0-9_-]+$" "/new/path/$1"
    

    如何在仍然允许url 1适当别名的情况下省略url 2?

1 个答案:

答案 0 :(得分:1)

试试这个正则表达式:^[^#]+$

或者这个:^.*?/[^#]+$

他们很容易理解。

但是,我不确定你到底要捕捉的是什么。您似乎知道如何使用捕获组,因此您可以添加一些。或者,如果您不知道,如果您想要正则表达式中的所有内容,则可以使用$0

编辑:

尝试:^[^/]*/([^#]+)$

这个会在最后一次斜线后切断所有内容:^[^/]*/([^#]+)/[^#/]+$

这个获取第一个和第二个斜杠之间的内容:^[^/]*/([^#/]+)/