我想让我的网站(Laravel 5.4)有这样的网址
http://example.com/im-a-stackoverflow-member-102345689.html
^ ^
{--------SLUG-----------}-{post_id}
我创建了这样的路线。
/* Routing for accessing news detail */
Route::get('/{slug}-{article_id}.htm', 'articleController@getArticleDetailById')
->name('getArticleDetailById')
->where(['slug' => '[A-Za-z]+'])
->where(['article_id' => '[0-9]+']);
但是不能用作我的期望网址,上面的代码仅在我访问此类http://example.com/im-102345689.html
的链接时才有效。我不能将路由规则用作/
,例如{slug}/{id}
,因为我需要保留所有旧链接。
有没有人有任何想法?
感谢您的帮助
答案 0 :(得分:2)
将您的路线正则表达式更改为:
->where(['slug' => '[A-Za-z-]+'])
或
->where(['slug' => '[A-Za-z-0-9]+[^-0-9.]+'])