Laravel - 301 永久移动(来自磁盘缓存)

Laravel - 301 Moved Permanently (from disk cache)

当我导航到 URL localhost/changecontrol 时,我希望加载 index.blade.php,但我在 [=18= 之后得到一个空的 200 OK 响应].网络选项卡显示如下:

changecontrol -> Status Code:301 Moved Permanently (from disk cache)
changecontrol/ -> 200 OK

浏览器自动将尾部斜杠添加到 URL,大概是因为奇怪的 301 错误。我试过不同的浏览器,结果都是一样的。

我还尝试了所有常用的缓存清除方法:route:clearcache:clearview:clear

路线

Route::namespace('ChangeControl')->group(function() {
    Route::group(['prefix' => 'changecontrol'], function() {
        Route::get('', 'ChangeController@index');
        ...
    });
});

控制器

public function index()
{
    return view('changecontrol.index');
}

查看路径

views
    changecontrol
        index.blade.php

我对另一个系统进行了相同的设置,该系统使用完全相同的结构、路由设置等,并且运行良好。

如果我将路线修改为 Route::get('index', 'ChangeController@index');,然后导航至 changecontrol/index,视图将按预期加载。

所以我真的不知道出了什么问题?为什么它适用于一个系统而不适用于另一个系统?

好的 - 在仔细查看 web.config 之后:

<match url="^(.*)/$" ignoreCase="false" />
<conditions>
    <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
</conditions>
<action type="Redirect" redirectType="Permanent" url="/{R:1}" />

这个特定规则导致了这个问题,因为我有一个不应该在的文件夹:

我有一个文件夹 public/changecontrol(错误创建且从未删除)。上面的规则与此匹配,这就是它重定向的原因。