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

时间:2018-02-15 11:12:39

标签: php laravel http-status-code-301

当我导航到网址localhost/changecontrol时,我希望加载index.blade.php,而我会在200 OK后收到空的301 Moved Permanently (from disk cache)响应。网络选项卡显示:

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,视图将按预期加载。

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

1 个答案:

答案 0 :(得分:0)

好的 - 仔细看看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(错误地创建并且从未删除过)。上述规则与此相符,这就是它重定向的原因。

相关问题