【问题标题】:Getting 404 by using Laravel routes - rewrite not working使用 Laravel 路由获取 404 - 重写不起作用
【发布时间】: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 添加到 &lt;Directory "s:/_dev/myapp/public"&gt; 中?不要忘记重新启动服务器。

标签: laravel apache mod-rewrite routes xampp


【解决方案1】:

我看不到我们的代码有任何问题,但这可能是浏览器问题。

查看这篇文章,了解导致 .dev 域出现问题的浏览器更改。

https://medium.engineering/use-a-dev-domain-not-anymore-95219778e6fd

【讨论】:

  • 感谢您的反馈。非常有趣的文章。但不幸的是,这似乎不是我的问题(还不是;))。阅读本文后,我尝试使用完全任意的 gTLD。我还在几个浏览器中尝试过,包括 Chrome、Firefox、IE、Vivaldi (Chromium)。同样的问题。
猜你喜欢
  • 2019-12-15
  • 1970-01-01
  • 1970-01-01
  • 2016-11-05
  • 2015-01-26
  • 2015-03-13
  • 2019-04-02
  • 2020-01-24
相关资源
最近更新 更多