在AliasMatch上找不到DirectoryIndex

时间:2015-08-13 18:05:14

标签: regex apache mod-alias

来自documentation我有这个:

AliasMatch "^/projects/(.+)" "/var/www/domain.name/$1/public"

它应仅匹配../projects/project1之类的网址,而不仅仅匹配../projects/

当我说,http://example.org/projects/project1/它会返回403 Forbidden。日志说是因为:

No matching DirectoryIndex found, and server-generated directory index forbidden by Options directive

我尝试在虚拟主机中明确添加DirectoryIndex,但无济于事。我打开了目录(/var/www/domain.name/project1/public)以供所有人阅读,现在它只显示了我想要的文件夹的目录列表。我可以看到它进入正确的文件夹,可以看到index.html文件,但它不会自动得到它应该。

<小时/> 我的VirtualHost文件的摘要版本:

<VirtualHost *:443>
    DocumentRoot /var/www/domain.name/www/public
    ServerName www.domain.name

    AliasMatch "^/projects/(.+)" "/var/www/domain.name/$1/public"

    ErrorDocument 401 err.php
    ErrorDocument 404 err.php
    ErrorDocument 500 err.php

    <Directory /var/www/domain.name>
        Options Indexes FollowSymLinks
        AllowOverride All
    </Directory>
</VirtualHost>

如果我然后将特定项目文件夹的权限设置为755,我只会获得一个目录列表。我把它改回了711。

/ var / www /中的所有文件夹均由用户名:www-data拥有,并拥有权限711。

如果我对该文件夹执行直接别名,即Alias /projects/<actual-project-name> /var/www/domain.name/<project-name>/public,则可以使用。

0 个答案:

没有答案