我正试图在我的服务器上创建一个别名,它将所有进入example.com/z/
的流量定向到一个与example.com
的其余部分不同的目录中,在这个目录中,example.com
安装了Laravel 4.2,example.com/z/
安装了Lumen安装,它运行一项服务。
这是我的原始vhost:
<VirtualHost *:80>
ServerName example.com
DocumentRoot /data/user/public_html/public
<Directory /data/user/public_html/public>
Options +FollowSymlinks
AllowOverride All
</Directory>
</VirtualHost>
这是添加了/z/
别名的vhost:
<VirtualHost *:80>
ServerName example.com
DocumentRoot /data/user/public_html/public
Alias /z/ /data/user/service/public
<Directory /data/user/service/public>
Options +FollowSymlinks
AllowOverride All
</Directory>
<Directory /data/user/public_html/public>
Options +FollowSymlinks
AllowOverride All
</Directory>
</VirtualHost>
当导航到exmaple.com/z/
时,我看到一个403页面,日志中显示以下错误:
Directory index forbidden by Options directive: /data/user/service/public
如果我转到/z/
下的任何其他页面(例如:/z/abcd
),我会得到一个404页面,但它看起来像Laravel404页面,而不是Lumon404页面。
你有什么建议吗?我该怎么做呢?
发布于 2015-04-30 01:05:29
该消息告诉您没有添加选项Indexes
<Directory /data/user/service/public>
Options +FollowSymlinks +Indexes
AllowOverride All
</Directory>
您的别名可能必须是
Alias /z /data/user/service/public
或
Alias /z/ /data/user/service/public/
发布于 2015-05-06 02:40:00
未经测试,但添加Require all granted
应该会消除一些共享限制。
要考虑的另一件事是确保您的文件夹实际归apache的所有者所有(www-data、apache,甚至您的用户名或其他名称,这取决于您的安装)。如果Apache无法读取该文件夹,则会触发一个错误。
我还将目录切换为引用别名而不是文件路径。
<VirtualHost *:80>
ServerName example.com
DocumentRoot /data/user/public_html/public
Alias /z /data/user/service/public
<Directory /z>
Options +FollowSymlinks +Indexes
AllowOverride All
Require all granted
</Directory>
<Directory /data/user/public_html/public>
Options +FollowSymlinks
AllowOverride All
</Directory>
</VirtualHost>
https://stackoverflow.com/questions/29900607
复制相似问题