Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel将.html附加到route(并且在没有.html的情况下也可以使用)_Php_.htaccess_Laravel - Fatal编程技术网

Php Laravel将.html附加到route(并且在没有.html的情况下也可以使用)

Php Laravel将.html附加到route(并且在没有.html的情况下也可以使用),php,.htaccess,laravel,Php,.htaccess,Laravel,添加.html并使其双向工作的最简单方法是什么 example.com/about->works example.com/about.html->works 我可以将“.html”添加到路由中,但是没有它就无法工作 Route::get('about.html', function () { return 'About page'; }); 试试这个: Route::get('about{extension}', function() { return 'About page'; }

添加.html并使其双向工作的最简单方法是什么

example.com/about->works

example.com/about.html->works

我可以将“.html”添加到路由中,但是没有它就无法工作

Route::get('about.html', function () {
 return 'About page';
});
试试这个:

Route::get('about{extension}', function() {
    return 'About page';
})->where('extension', '(?:.html)?');
如果您有许多页面需要此模式,也可以使用RouteServiceProvider捕获扩展(谢谢@Mike):

然后在routes.php中

Route::get('about{extension}', function() {
    return 'About page';
});

您还应该提到,可以在服务提供商中定义regex,这样就不必重复
其中的
。您应该避免对同一内容使用两个不同的URI。搜索引擎会将其视为重复内容,并相应地对您的网站进行排名。宁可选择保留它,也不要丢弃它。谢谢迈克。我的问题是,我有一个广受欢迎的高排名网站,目前正在与扩展一起工作。我现在正在拉维尔写这个网站。如果我使用301重定向强制.html,那么这将需要在.htaccess而不是Laravel中发生?您还可以使用规范的url来确定页面的原始来源,并避免搜索引擎出现此类问题(仍然使用带有或不带扩展名的页面),@zorx是非常正确的-如果你的网站排名已经很好,就不必为重定向而大惊小怪。只需使用一个规范标签,以确保一切都是桃色的。
Route::get('about{extension}', function() {
    return 'About page';
});