通过网络访问应用程序时,Laravel 项目路由不起作用

Posted

技术标签:

【中文标题】通过网络访问应用程序时,Laravel 项目路由不起作用【英文标题】:Laravel project routes not working when app is accessed over the network 【发布时间】:2021-10-26 15:36:15 【问题描述】:

当我从安装 wampServer 的同一台计算机访问应用程序时,无论我使用计算机的 localhost 或 Ip 访问它,但当我将 wamp 服务器联机并使用另一台计算机的 Ip 访问同一应用程序时,一切正常安装 wamp 的计算机路由对我不起作用,只有根页面被访问,如果我点击任何其他链接,我会收到 404 错误

这是公用文件夹中的 .htaccess 文件

<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
    Options -MultiViews -Indexes
</IfModule>

RewriteEngine On

# Handle Authorization Header
RewriteBase /laravel/itman/public/
RewriteCond %HTTP:Authorization .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%HTTP:Authorization]

# Redirect Trailing Slashes If Not A Folder...
RewriteCond %REQUEST_FILENAME !-d
RewriteCond %REQUEST_URI (.+)/$
RewriteRule ^ %1 [L,R=301]

# Send Requests To Front Controller...
RewriteCond %REQUEST_FILENAME !-d
RewriteCond %REQUEST_FILENAME !-f
RewriteRule ^ index.php [L]

httpd-vhosts.conf 文件在 wamp\bin\apache\apache2.4.41\conf\extra\httpd-vhosts.conf 中

<VirtualHost *:80>
  ServerName localhost
  ServerAlias localhost
  DocumentRoot "$INSTALL_DIR/www"
  <Directory "$INSTALL_DIR/www/">
    Options +Indexes +Includes +FollowSymLinks +MultiViews
    AllowOverride All
    Require all granted
  </Directory>
</VirtualHost> 

【问题讨论】:

【参考方案1】:

apache 虚拟主机应该指向你的 laravel 项目的 public 目录。

例如

<VirtualHost *:80>
  ServerName localhost
  ServerAlias localhost
  DocumentRoot "$INSTALL_DIR/www/public"
  <Directory "$INSTALL_DIR/www/public">
    Options +Indexes +Includes +FollowSymLinks +MultiViews
    AllowOverride All
    Require all granted
  </Directory>
</VirtualHost> 

【讨论】:

把它改成 还是不行 您为 DocumentRoot 设置了什么? 我应该在哪里检查? 这是虚拟主机配置中的第二行,在上述答案中已更改。您确认您更改了 Directory 行,您是否也注意到 DocumentRoot 行的更改包括/public 是的,它是一样的,我注意到一些问题,比如当我更改项目文件夹的名称时,路由开始正常工作,即如果我将“ItMan”的文件夹名称更改为“itman”这样的小写字母

以上是关于通过网络访问应用程序时,Laravel 项目路由不起作用的主要内容,如果未能解决你的问题,请参考以下文章

为啥 Laravel 中的 PHPUnit 不能访问存在的路由?

使用 xampp 在 laravel 中路由

504网关尝试登录laravel项目时超时

通过路由从 Laravel 中的 MySQL 导出列时出错

Laravel 5.2 - 方法身份验证不存在

使用路由 Laravel 5.2 时访问资源时出错