【发布时间】: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吗?另见:stackoverflow.com/questions/869092/…
-
是的,我重新启动了服务器。不幸的是,我没有在您的链接帖子中找到解决方案。
-
将项目迁移到 vagrant/Laravel homestead 可能是一种更短的方法。你会更轻松地工作!
-
感谢您的提示。听起来很酷。我会看看的。但是,如果有人对我的问题有解决方案,那就太好了:) 因为我以后可能会在生产服务器端遇到这样的问题。
-
您是否尝试在 httpd-vhost 配置中将
AllowOverride All添加到<Directory "s:/_dev/myapp/public">中?不要忘记重新启动服务器。
标签: laravel apache mod-rewrite routes xampp