什麼是最簡單的方式來添加.html,並使其工作兩種方式?Laravel附加.html路由(也有沒有.html的工作)
example.com/about - > works!
example.com/about.html - >作品!
我可以添加「.html」的路線,但它不工作沒有。
Route::get('about.html', function() {
return 'About page';
});
什麼是最簡單的方式來添加.html,並使其工作兩種方式?Laravel附加.html路由(也有沒有.html的工作)
example.com/about - > works!
example.com/about.html - >作品!
我可以添加「.html」的路線,但它不工作沒有。
Route::get('about.html', function() {
return 'About page';
});
試試這個:
Route::get('about{extension}', function() {
return 'About page';
})->where('extension', '(?:.html)?');
您還可以使用RouteServiceProvider趕分機,如果您有需要這種模式(感謝@Mike)許多網頁:
//app/Providers/RouteServiceProvider.php
public function boot(Router $router)
{
$router->pattern('extension', '(?:.html)?');
parent::boot($router);
}
和然後在你的routes.php
Route::get('about{extension}', function() {
return 'About page';
});
你還應該提到,正則表達式可以在服務提供者中定義,以便'where'不必重複... –
完美工作,謝謝! – user1040259
你應該對同一內容使用兩個不同的URI。搜索引擎會將其視爲重複的內容,並相應地對您的網站進行排名。寧可選擇保留它,或丟棄它。 –
謝謝邁克。我的問題是,我有一個受歡迎的排名很高的網站,目前與擴展工作和擴展。我現在正在Laravel寫這個網站。如果我強制使用301重定向的.html,那麼需要在.htaccess而不是Laravel中發生? – user1040259
您還可以使用規範網址來確定您的網頁的原始來源,並避免搜索引擎出現此類問題(並且仍然使用您的網頁,但不包括擴展名) – zorx