Laravel 5.6 '/' 找到路由但未找到其他路由 AWS EC2
Posted
技术标签:
【中文标题】Laravel 5.6 \'/\' 找到路由但未找到其他路由 AWS EC2【英文标题】:Laravel 5.6 '/' route found but other routes not found AWS EC2Laravel 5.6 '/' 找到路由但未找到其他路由 AWS EC2 【发布时间】:2019-07-18 21:22:00 【问题描述】:我是 laravel 和 AWS 的新手。我正在尝试在 AWS EC2 apache 服务器上运行我的应用程序。我的应用程序在本地系统中运行良好,但是一旦我尝试在 AWS 上上传代码,只有索引路由(即“/”)运行良好。对于其他路线,它给了我 NOT FOUND 错误。如果我尝试运行 application /index.php/login 它正在加载一个页面,但 js 和 css 不可用。
000-default.conf 文件中的代码
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/public
/etc/apache2/apache2.conf 文件中的代码
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
我的应用程序的根目录中没有 .httacess,我在更改后重新启动了 apache 服务器。请指导我缺少什么。
提前谢谢你。
【问题讨论】:
您是否尝试将sudo a2enmod rewrite
并重启apache吗?
【参考方案1】:
httpd 我也有同样的问题,但我通过添加.htaccess
来解决它。
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews -Indexes
</IfModule>
RewriteEngine On
# Handle Authorization Header
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]
</IfModule>
注意在public/目录下添加.htaccess
。
【讨论】:
【参考方案2】:看来您需要设置虚拟主机配置。使用sudo nano /etc/apache2/sites-available/000-default.conf
命令(或您使用的任何文本编辑器)打开您的默认配置文件并将默认配置替换为以下内容
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName example.com
DocumentRoot /var/www/html/public
<Directory "/var/www/html/public">
Options +FollowSymLinks
ReWriteEngine On
Require all granted
</Directory>
ErrorLog $APACHE_LOG_DIR/error.log
CustomLog $APACHE_LOG_DIR/access.log combined
</VirtualHost>
【讨论】:
我将你的代码复制粘贴到 000-default.conf 文件中并重启 apache 但仍然无法正常工作 @urvisha 如果有任何有用的解释,你能检查一下你的 apache 日志吗 (/var/log/apache2/error.log
)
Tingir 抱歉耽搁了。以下错误在 apache 错误日志 [mpm_prefork:notice] [pid 16031] AH00163: Apache/2.4.18 (Ubuntu) 已配置 -- 恢复正常操作 [core:notice] [pid 16031] AH00094: Command line: '/usr/ sbin/apache2' [mpm_prefork:notice] [pid 16031] AH00169: 捕获 SIGTERM,正在关闭以上是关于Laravel 5.6 '/' 找到路由但未找到其他路由 AWS EC2的主要内容,如果未能解决你的问题,请参考以下文章
Laravel 5.6和Eloquent将子模型持久化到数据库中,无法从模型中找到hasMany或belongsTo方法