我出于搜索引擎优化的原因,在我的Laravel项目中使用了slu .. URL构建如下:https://website.com/page/{id}/{slug}
。我想允许仅使用id访问我的页面,并自己匹配slug。因此,如果用户输入website.com/1
,他将被重定向到website.com/1/slug
。
所以我在页面控制器中写了这个方法:
public function addSlug(Page $page)
{
return redirect('/page/' . $page->id . '/' . $page->slug);
}
在我的路线文件中:
Route::get('/page/{page}', 'PagesController@addSlug');
唯一的问题是我的slu is是希伯来语单词,所以不是以website.com/1/שער-7
为例,而是website.com/1/שער-7
有没有办法克服这个问题?
(注意:数据库和文件编码是UTF-8)
(注2:我可以通过website.com/1/hebrew-slug
访问该页面。我认为问题在于重定向方法。)
答案 0 :(得分:1)
我遇到了同样的问题,所有流行的slugs包都不适用于UTF-8网址,所以我写了my own package。检查出来,如果您不需要将UTF-8字符转换为ASCII,则可以按原样使用它。或者你可以分叉进行一些修改。