【问题标题】:URL encoding with Laravel and Hebrew使用 Laravel 和希伯来语进行 URL 编码
【发布时间】:2016-11-19 15:50:47
【问题描述】:

出于 SEO 的原因,我在 Laravel 项目中使用 slugs。 URL 是这样构建的:https://website.com/page/{id}/{slug}。我想让我的页面只能用 id 访问,并自己匹配 slug。所以如果用户输入website.com/1,他会被重定向到website.com/1/slug

所以我在 pages 控制器中写了这个方法:

public function addSlug(Page $page)
{
    return redirect('/page/' . $page->id . '/' . $page->slug);
}

在我的路线文件中:

Route::get('/page/{page}', 'PagesController@addSlug');

唯一的问题是我的蛞蝓是希伯来语单词,所以例如我没有得到website.com/1/שער-7,而是得到website.com/1/שער-7

有没有办法克服这个问题?

(注:数据库和文件编码为UTF-8)

(注2:我可以通过website.com/1/hebrew-slug访问该页面。我认为问题出在重定向方法上)。

【问题讨论】:

  • 这不是浏览器特有的问题吗?我对此进行了测试(不是用希伯来语,而是用带有重音符号的字母,比如čš,效果很好。
  • 它发生在所有浏览器上...

标签: php laravel laravel-5 laravel-5.3


【解决方案1】:

我遇到了同样的问题,所有流行的 slugs 包都不能使用 UTF-8 URL,所以我写了my own package。检查一下,如果您不需要将 UTF-8 字符转译为 ASCII,则可以按原样使用它。或者你可以 fork 做一些修改。

【讨论】:

  • 我可以通过 website.com/1/hebrew-slug 访问该页面。我认为问题出在重定向方法上。
  • @Daniel 等待其他答案,也许有人会告诉你更好的方法。但我自己从来没有找到它,所以我为我的项目编写了这个包。 )
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-16
  • 1970-01-01
  • 1970-01-01
  • 2015-07-03
  • 1970-01-01
相关资源
最近更新 更多