AliasMatch:匹配所有,除非哈希

AliasMatch: Match on all except if hash

A​​pache2,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

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

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

如何省略 url 2,同时仍然允许 url 1 适当地别名化?

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

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

他们很容易理解。

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

编辑:

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

这个将在最后一个斜线之后砍掉所有东西:^[^/]*/([^#]+)/[^#/]+$

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