Php Laravel将.html附加到route(并且在没有.html的情况下也可以使用)
添加.html并使其双向工作的最简单方法是什么 example.com/about->works example.com/about.html->works 我可以将“.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'; }
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';
});