【问题标题】:apache symlink to index.html "404 Not Found"apache 符号链接到 index.html “404 Not Found”
【发布时间】:2023-03-16 18:28:01
【问题描述】:

我在 Amazon Web Service Ubuntu 实例上安装了 apache2。如果我将 ip 放入浏览器 url 中的实例,它会成功调出默认的 apache 主页。该页面是从 /var/www/html 提供的。

现在我想调出存储在 /opt/Company/Product/index.html 中的真实网页。我在 var/www/html 中创建了一个指向 /opt/Company/Product 的符号链接,如下所示:

ln -s /opt/Company/Product Product 

但是当我输入 ip/Product/index.html 时,我得到 404 Not Found 错误。

在我的 /etc/apache2/sites-available/000-default.conf 我有一个这样的虚拟主机:

<VirtualHost *:80>
   DocumentRoot /var/www/html/Product
   ServerName ip
   <Directory /var/www/html/E360_UI/>
      Options FollowSymLInks
   </Directory>    
</VirtualHost>

有什么建议吗?

【问题讨论】:

    标签: apache amazon-web-services symlink


    【解决方案1】:

    我怀疑您的 apache 配置未设置为遵循符号链接。

    您需要在 Apache 配置中启用 FollowSymLinks 选项。如果主配置允许您覆盖此选项,您也可以在 .htaccess 文件中启用它。

    /var/www/html 中放置一个.htaccess 文件,其中包含:

    Options +FollowSymLinks

    为此,您需要将正确的DirectoryAllowOverride 指令设置为至少OptionsAll 也可以,如果这是当前值)

    【讨论】:

    • 我在目录中有 FollowSymLinks 但没有 AllowOverride All。当我添加它时,它就开始工作了。
    【解决方案2】:

    您的文档根目录不应包含 Product。

    【讨论】:

    • 好的,我取出 /Product 并重新加载了 sudo service apache2。同样的问题。
    • 一定要添加指令Options FollowSymLinks。我刚刚尝试过,访问符号链接没有问题。另请查看error_log 文件以了解实际错误是什么
    猜你喜欢
    • 2013-10-07
    • 2019-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-20
    • 1970-01-01
    • 1970-01-01
    • 2023-03-16
    相关资源
    最近更新 更多