1

我有以下路线:Route::resource('users', 'ProfileController'); 当我去时site.com/users/123,它会正确加载页面。我也可以去site.com/index.php/users/123并获得相同的页面(不确定 laravel 是否默认打算这样做)。

如果我将 url 更改为site.com/does_not_exist/users/123,laravel 会返回 404,如您所料。但是,如果我去site.com/does_not_exist/index.php/users/123,laravel 会加载页面。我可以在 site.com 和 index.php 之间放置任何随机路径,不存在的路径,它会起作用。

为什么 laravel 不为此返回 404?我该如何解决它呢?

4

1 回答 1

0

因为 index.php 是处理传入请求的公共文件夹中的 index.php,它是一个自动生成的类加载器

这可能有效(关于如何解决此问题的类似问题)

1-将 server.php 重命名为 index.php(无修改)

2-从公共复制.htaccess(如下面的rimon.ekjon)

3-将 .htaccess 更改为静态如下:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]

RewriteCond %{REQUEST_URI} !(\.css|\.js|\.png|\.jpg|\.gif|robots\.txt)$ [NC]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !^/public/
RewriteRule ^(css|js|images)/(.*)$ public/$1/$2 [L,NC]

如果需要任何其他静态文件,只需将扩展名添加到先前声明的列表中

资源

于 2016-05-01T01:45:54.447 回答