有没有办法从AliasMatch中豁免文件/文件夹?

时间:2011-02-14 22:20:22

标签: regex apache .htaccess alias

我正在为我的网站做一个通用别名到应用程序主目录,但是有一些文件和目录必须仍然是特定于vhost的,例如缓存和客户端提供的文件。 我可以轻松地执行此操作以实现应用程序别名:

AliasMatch ^(.*)$ "/path/to/app$1"

但我现在想要排除某些文件/文件夹。现在,在AliasMatch之前我有很多这样的行:

Alias /favicon.ico "/var/www/html/vhosts/domain.name/httpdocs/favicon.ico"

但实际上这只是让它在没有AliasMatch的情况下完成它所做的事情,更容易拼错并且难以重用。那么有没有办法简单地排除/favicon.ico,或者至少使用DocumentRoot作为常量,所以我可以做这样的事情呢?

Alias /favicon.ico "$DocumentRoot$/favicon.ico"

1 个答案:

答案 0 :(得分:1)

您可以对AliasMatch使用这样的语法 -

AliasMatch ^(/(f(?!avico\.ico)|[^f]).*)$ "/path/to/app$1"

这与/favico.ico不匹配,因此它将在vhost的DocumentRoot中查找