虚拟主机文档路由之外的 Apache 别名



我遇到一种情况,即我的图像与我的文档根目录处于同一级别。

所以我需要/Users/jwindhall/Sites/gdw/my_app/images(www.example.local/images)

指向/Users/jwindhall/Sites/gdw/images。

我一直在做:

其余的...

<VirtualHost *:80>
ServerAdmin example@whatever.com
DocumentRoot "/Users/jwindhall/Sites/gdw/my_app/"
ServerName www.example.local
ServerAlias www.example.local
<Directory "/Users/jwindhall/Sites/gdw/my_app">
Options All Includes Indexes FollowSymLinks
Order allow,deny
Allow from all
AllowOverride All
</Directory>
Alias /images /Users/jwindhall/Sites/gdw/images
</VirtualHost>

我做错了什么?

Alias需要在虚拟主机中定义(或直接在服务器配置中定义,但这可能不是一个好主意):

<VirtualHost *:80>
ServerAdmin example@whatever.com
DocumentRoot "/Users/jwindhall/Sites/gdw/my_app/"
ServerName www.example.local
ServerAlias www.example.local
<Directory "/Users/jwindhall/Sites/gdw/my_app">
Options All Includes Indexes FollowSymLinks
Order allow,deny
Allow from all
AllowOverride All
</Directory>
Alias /images /Users/jwindhall/Sites/gdw/images
<Directory "/Users/jwindhall/Sites/gdw/images">
Order allow,deny
Allow from all
</Directory>
</VirtualHost>

将别名放在虚拟主机中。 此外,您不需要与 ServerName 相同的 ServerAlias。

<VirtualHost *:80>
ServerAdmin example@whatever.com
DocumentRoot "/Users/jwindhall/Sites/gdw/my_app/"
ServerName www.example.local
<Directory "/Users/jwindhall/Sites/gdw/my_app">
Options All Includes Indexes FollowSymLinks
Order allow,deny
Allow from all
AllowOverride All
</Directory>
Alias /images /Users/jwindhall/Sites/gdw/images
</VirtualHost>

如果这不起作用,您得到什么错误? apache用户是否可以访问图像目录?