使用Laravel路由获取404-重写不起作用

时间:2018-11-18 19:55:05

标签: laravel apache mod-rewrite routes xampp

我正在使用Laravel-5框架,并在route / web.php中创建了以下路由:

Route::get('/test', function () {
    return view('test');
});

导航到myapp.dev/test后,出现错误404:

找不到对象!在此服务器上找不到请求的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>

有什么想法我错过了吗?

谢谢

1 个答案:

答案 0 :(得分:1)

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

请查看本文,其中介绍了导致.dev域出现问题的浏览器更改。

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