4

我刚刚在 Ubuntu 12.04 中设置了 apache/php/mysql,并为我的虚拟目录创建了别名,这是我的 /etc/apache2/sites-enabled/000-default 文件:

Alias /demo/ "/home/czetsuya/projects/eclipse/eclipse-php/demo-portfolio"
<Directory "/home/czetsuya/projects/eclipse/eclipse-php/demo-portfolio">
    DirectoryIndex index.php
    Options Indexes MultiViews FollowSymLinks
    AllowOverride All
    Order deny,allow
    Deny from all
    Allow from all
</Directory>

请注意,我已经将 chown 和 chmod 应用于:/home/czetsuya/projects/eclipse/eclipse-php/demo-portfolio

chown www-data:www-data /home/czetsuya/projects/eclipse/eclipse-php/demo-portfolio -R
chmow 777 /home/czetsuya/projects/eclipse/eclipse-php/demo-portfolio -R

但是当我访问:_http://localhost/demo 时,我得到了 404 Not found 错误。查看 /var/log/apache2/error.log 我发现它仍然指向 /var/www/demo:

File does not exist: /var/www/demo

知道为什么 Alias 会被忽略吗?

请注意,我已经重新启动并重新加载了 apache2。并且还启用了重写。

谢谢,
czetsuya

4

3 回答 3

9

您的问题很可能可以通过mod_alias 手册解决;

请注意,如果您在 URL 路径中包含尾随 /,则服务器将需要尾随 / 以扩展别名。也就是说,如果你使用

别名 /icons/ /usr/local/apache/icons/ 那么 URL /icons 将不会被别名,因为它缺少尾随 /。

尝试在您的别名中更改/demo//demo,它应该会更好。

于 2012-11-02T04:25:07.647 回答
8

Apache 2.4 中的所有别名都必须在/etc/apache2/mods-enabled/alias.conf文件中进行配置。

它们在虚拟主机文件中被忽略。

于 2018-08-13T19:28:18.427 回答
-1

家伙要注意这些 SLASHES 的确切语法,它不能在目录名称的末尾,也不能在别名的末尾,这让我花费了难以置信的时间来发现这个错误,来自 apache 的工作人员非常好!正确方式:别名“/docs”“/var/web” 错误方式:别名“/docs/”“/var/web/”

于 2017-01-10T09:17:56.367 回答