【问题标题】:Apache Virtualhost wrong destination folderApache Virtualhost 错误的目标文件夹
【发布时间】:2017-01-14 01:36:26
【问题描述】:

我在我的 Apache 2.4 Websever 上创建了一个虚拟主机,但如果我尝试加载 URL,路径有时是错误的,并且由于未知原因返回错误。

我有域“test.com”

我的网站可用/默认如下所示:

NameVirtualHost *:80

<VirtualHost *:80>
     DocumentRoot /var/www/test/
     ServerName test.com/

     <Directory /var/www/test/>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride All
     </Directory>
</VirtualHost>

如果我现在调用 URL

"http://www.test.com/" or "www.test.com" 

一切都很好,但如果我尝试加载例如“test.com”,服务器会将我重定向到

"test.com/test/" 

并给我一个 404 错误。我不明白为什么它会像这样在某些 URL 上重定向我。

【问题讨论】:

    标签: apache redirect web-config virtualhost


    【解决方案1】:

    尝试删除尾部斜杠

    ServerName test.com/
    DocumentRoot /var/www/test/
    

    把它改成

    ServerName test.com
    DocumentRoot /var/www/test
    

    它会重定向你,因为尾部斜杠指向文档根目录中的test 子目录。

    因为这是唯一的虚拟主机配置。以下来自apache文档

    <VirtualHost *:80>
    # This first-listed virtual host is also the default for *:80
    ServerName www.example.com
    ServerAlias example.com 
    DocumentRoot "/www/domain"
    </VirtualHost>
    

    现在你要做的就是添加一个服务器别名来指定 www 以便 apache 知道如何处理这个事件

    【讨论】:

    • 现在,如果我尝试在没有“www”的情况下加载“test.com/”,我仍然会收到错误:(
    • 也尝试从DocumentRoot /var/www/test/ 中删除斜线。因为 test.com 是此虚拟主机配置处理的显式服务器名称。另一个 www.test.com 很可能由 default 配置处理,如果没有由另一个 vhost 配置定义。
    • 我现在将默认配置更改为: NameVirtualHost *:80 DocumentRoot /var/www/test ServerName test.com 选项索引 FollowSymLinks MultiViews AllowOverride All 但我仍然有“www”问题,默认是唯一的一个配置
    • 添加一个 SeverAlias 到地址 www
    猜你喜欢
    • 2022-01-09
    • 1970-01-01
    • 1970-01-01
    • 2022-12-30
    • 1970-01-01
    • 2018-01-26
    • 2014-01-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多