使用 Laravel 路由获取 404 - 重写不起作用
Posted
技术标签:
【中文标题】使用 Laravel 路由获取 404 - 重写不起作用【英文标题】:Getting 404 by using Laravel routes - rewrite not working 【发布时间】:2019-04-21 05:39:54 【问题描述】:我正在使用 Laravel-5 框架,并在 routes/web.php 中创建了以下路由:
Route::get('/test', function ()
return view('test');
);
导航到myapp.dev/test
后,我收到错误 404:
找不到对象!在此服务器上找不到请求的 URL。如果您手动输入了 URL,请检查您的拼写并重试。
导航到myapp.dev/index.php/test
工作正常。所以,看起来 rewrite_mod 不起作用。
我正在使用 XAMP/Apache 并且在 httpd.conf 中启用了 rewrite_module:
LoadModule rewrite_module modules/mod_rewrite.so
我的 larvavel 的公用文件夹包含一个 .htaccess 文件,其内容如下:
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews -Indexes
</IfModule>
RewriteEngine On
#DirectoryIndex index.php
# 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]
# Handle Front Controller...
RewriteCond %REQUEST_FILENAME !-d
RewriteCond %REQUEST_FILENAME !-f
RewriteRule ^ index.php [L]
</IfModule>
httpd-vhost 配置如下所示:
<VirtualHost *:80>
ServerAdmin my@mail.com
DocumentRoot "s:/_dev/myapp/public"
ServerName myapp.dev
<Directory "s:/_dev/myapp/public">
Allow from all
Require all granted
#Options Indexes
</Directory>
ErrorLog "logs/myapp.dev-error.log"
CustomLog "logs/myapp.dev-access.log" common
</VirtualHost>
有什么我错过的想法吗?
谢谢
【问题讨论】:
你重启了apache吗?另见:***.com/questions/869092/… 是的,我重新启动了服务器。不幸的是,我没有在您的链接帖子中找到解决方案。 将项目迁移到 vagrant/Laravel homestead 可能是一种更短的方法。你会更轻松地工作! 感谢您的提示。听起来很酷。我会看看的。但是,如果有人对我的问题有解决方案,那就太好了:) 因为我以后可能会在生产服务器端遇到这样的问题。 您是否尝试在 httpd-vhost 配置中将AllowOverride All
添加到 <Directory "s:/_dev/myapp/public">
中?不要忘记重新启动服务器。
【参考方案1】:
我看不到我们的代码有任何问题,但这可能是浏览器问题。
查看这篇文章,了解导致 .dev 域出现问题的浏览器更改。
https://medium.engineering/use-a-dev-domain-not-anymore-95219778e6fd
【讨论】:
感谢您的反馈。非常有趣的文章。但不幸的是,这似乎不是我的问题(还不是;))。阅读本文后,我尝试使用完全任意的 gTLD。我还在几个浏览器中尝试过,包括 Chrome、Firefox、IE、Vivaldi (Chromium)。同样的问题。以上是关于使用 Laravel 路由获取 404 - 重写不起作用的主要内容,如果未能解决你的问题,请参考以下文章