通过网络访问应用程序时,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>
【讨论】:
把它改成/public
?
是的,它是一样的,我注意到一些问题,比如当我更改项目文件夹的名称时,路由开始正常工作,即如果我将“ItMan”的文件夹名称更改为“itman”这样的小写字母
以上是关于通过网络访问应用程序时,Laravel 项目路由不起作用的主要内容,如果未能解决你的问题,请参考以下文章