Apache2 虚拟主机与 ScriptAlias 返回 403

Apache2 虚拟主机与 ScriptAlias 返回 403

我正在尝试引用我的 libs 目录,它是我的兄弟目录DocumentRoot

我正在使用以下ScriptAlias方法尝试实现这一点。

ScriptAlias /libs/ "../libs"

但是当我访问 example.com/libs/ 时出现以下错误

Forbidden
You don't have permission to access /libs/ on this server

我能够libs使用以下配置查看目录,因此我不认为这是一个文件权限错误。

<VirtualHost *>
    ServerName example.com
    ServerAlias www.example.com
    DocumentRoot C:/www/libs
<VirtualHost *>

下面是更多相关的 httpd.cong 设置

<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
</Directory>
<Directory "C:/www">
    Options Indexes FollowSymLinks
    AllowOverride None
    Order Deny,Allow
    Deny from none
    Allow from all
</Directory>
NameVirtualHost *
<VirtualHost *>
    ServerName example.com
    ServerAlias www.example.com
    DocumentRoot C:/www/example
    ScriptAlias /libs/ "../libs"
    <Directory "C:/www/libs">
        Options Indexes FollowSymLinks
        AllowOverride None
        Options +ExecCGI
        Order Deny,Allow
        Deny from none
        Allow from all
    </Directory>
</VirtualHost>

答案1

以下内容相互冲突:

ScriptAlias /libs/ "../libs"
<Directory "C:/www/libs">
    ...
    ...
    Options +ExecCGI
    ...
    ...
    ...
</Directory>

请参阅此链接:http://httpd.apache.org/docs/2.0/mod/mod_alias.html#scriptalias

这两个指令基本上是相同的,只是在 Directory 中缺少 SetHandler 行。

尝试删除选项行,或者在目录块中添加 SetHandler 行并将 ScriptAlias 更改为 Alias...

相关内容