我正在建设一个网站,我想使用utf 8字符在url我在一些地方,但我没有得到我需要的答案,所以我有几个问题。
我正在使用代码点火器,网站im大楼有一篇文章,我想将文章标题(而不是英文)发送到url中
Domain.com/ctrl/(非英语)
谢谢大家的回答。
发布于 2015-01-19 21:20:30
如果将这一行放在控制器构造函数中,则强制所有内容都为utf-8。
class Article extends CI_Controller {
function __construct() {
parent::__construct();
// set all to utf-8
$this->output->set_header('Content-Type: text/html; charset=utf-8');
}
// controller methods etc 链接将在您的视图文件中输出--这将确保您的所有文本(包括链接)都以utf-8编码方式输出。另一方面,默认情况下,codeigniter - in application/config/config.php签出在url中是不允许的字符。
$config['permitted_uri_chars']发布于 2015-01-19 20:58:14
问题不是SEO在这里。谷歌不会对urls中的utf8字符过于挑剔,但与非常旧的浏览器存在兼容性问题。
如果你说的是斯堪的纳维亚语,这些语言只有几个额外的字符,那么google很聪明,可以转换搜索词,比如包含“b r”的搜索词,以匹配名为“bar”的页面,反之亦然。因此,对于这种类型的语言来说,在url中添加utf8字符可能不值得额外的麻烦。但是如果你说的是中文或者别的什么,那么这里有一种方法。
问题是,编解码器使用url来确定要执行的类和函数,这仅限于a_ in php5 (我认为)。这家伙说,这不是一个容易的任务,但详细说明,似乎已经发挥了作用。
https://ellislab.com/forums/viewthread/146840/#717001
您可以通过将UTF-8字符输入到allowed_chars_list中的config.php中,然后为您的外国URL段设置路由,或者通过修补路由器将UTF-8字符转换为最近的a字符?
基本上,重写utf8 urls,以便在内部将它们转换为正常字符,从而找到正确的函数。
https://stackoverflow.com/questions/28033012
复制相似问题