【发布时间】:2015-12-06 11:10:21
【问题描述】:
如何将以下网址重定向到小写网址?
http://domain.com/City/really-long-slug-from-db/photos
http://domain.com/city/Really-Long-Slug-From-Db/photos
http://domain.com/City/really-long-slug-from-db/Photos
到
http://domain.com/city/really-long-slug-from-db/photos
这是我的路线:
Route::any('/{city}/{slug}/{page?}',
array(
'as' => 'slug-page',
function($city, $slug, $page="info"){
return View::make('default.template.'.$page)
->with('city', $city)
->with('page',$page)
->with('slug', $slug);
}
))
->where(
array(
'city' => '[a-z ]+',
'page' => '[a-z-]+',
'slug' => '(about|photos|videos)'
));
目前我使用正则表达式 [a-z-]+ 仅匹配较小的大小写字符串,并且出于显而易见的原因抛出 NotFoundHttpException。
如何在不区分大小写的字符串和 301 重定向(以避免重复的 url)中接受所有这些参数到 Laravel 5.1 中的小写 url?
【问题讨论】:
-
是否有任何理由创建区分大小写的 slug?或在您的网址中使用区分大小写?我不经常看到这种情况发生,只是想知道原因。无论如何,最简单的方法是将 slug 更改为小写。不幸的是,我不知道如何直接回答您的问题:/
-
只接受所有字母(大写和小写)并制作中间件来检测是否有大写字母,而不是重定向到小写网址
标签: php laravel routing laravel-5 laravel-5.1