当虚拟主机指向 HTDOCS 之外时,Apache 会中断 laravel 路由

Posted

技术标签:

【中文标题】当虚拟主机指向 HTDOCS 之外时,Apache 会中断 laravel 路由【英文标题】:Apache breaks laravel routes when virtualhost points outside HTDOCS 【发布时间】:2018-07-19 15:08:52 【问题描述】:

我正在尝试将我的 Laravel 5.5 项目迁移到 Apache。 问题是,当我创建一个指向 htdocs 文件夹外部的虚拟主机时,它只会在调用根 ('/') 以外的东西时破坏我的所有 API 路由。

这些是我的设置文件:

主持人:

127.0.0.1   project-inside.dev
127.0.0.1   project-outside.dev

httpd-vhosts.conf:

<VirtualHost *:80>
  ServerName project-inside.dev
  DocumentRoot "C:\xampp\htdocs\api_project\public"
  <Directory "C:\xampp\htdocs\api_project\public">
    Require all granted
  </Directory>
</VirtualHost>

<VirtualHost *:80>
  ServerName project-outside.dev
  DocumentRoot "C:\Users\MyUser\Desktop\projects\api_project\public"
  <Directory "C:\Users\%userprofile%\Desktop\projects\api_project\public">
    Require all granted
  </Directory>
</VirtualHost>

如果我向 project-inside.dev 发送邮递员请求(项目文件在 htdocs 中),每条路线都可以正常工作。另一方面,如果我尝试向 project-outside.dev 发送邮递员请求(项目文件位于我的桌面上),则只有主路由有效,请求发送到像 这样的路由project-outside.dev/api/login 返回 404 错误。

【问题讨论】:

【参考方案1】:

您是否尝试过在 htdocs 之外运行它

composer dump-autoload
php artisan cache:clear
php artisan route:cache

【讨论】:

以上是关于当虚拟主机指向 HTDOCS 之外时,Apache 会中断 laravel 路由的主要内容,如果未能解决你的问题,请参考以下文章

在 htdocs 文件夹之外制作 XAMPP / Apache 服务文件 [关闭]

虚拟主机未正确指向

Apache:可以在 webroot 之外定义一个脚本作为起始页吗?

如何更改Apache的根目录指向

为啥我的本地主机无法识别其目录中的 htdocs?

apache 基于域名虚拟主机配置,本机上访问 www.test.com指向 127.0.0.1/test