Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
codeigniter 1.7不允许的关键字符西里尔字符_Codeigniter_Codeigniter Url - Fatal编程技术网

codeigniter 1.7不允许的关键字符西里尔字符

codeigniter 1.7不允许的关键字符西里尔字符,codeigniter,codeigniter-url,Codeigniter,Codeigniter Url,我有如下url的“不允许的关键字符”: /project/category/Португалски 若url只包含拉丁字符,那个么问题就不存在了 删除index.php后出现问题。 用于删除我在中使用的 config.php : $config['index_page'] = ""; 及 完成此url的工作后,请删除此url的whit cyrillic字符。 我读了很多关于这方面的问题,并尝试了不同的解决方案,如: 在core/input/_clean_input_keys功能中,我更改了

我有如下url的“不允许的关键字符”:

/project/category/Португалски
若url只包含拉丁字符,那个么问题就不存在了

删除index.php后出现问题。 用于删除我在中使用的

config.php :
$config['index_page'] = "";

完成此url的工作后,请删除此url的whit cyrillic字符。 我读了很多关于这方面的问题,并尝试了不同的解决方案,如:

在core/input/_clean_input_keys功能中,我更改了

 if ( ! preg_match("/^[a-z0-9:_\/-]+$/i", $str))
 to
 if ( !preg_match("/^[a-z0-9а-яА-Я~%:_\/-]+$/i", $str))
我尝试了这个表达式的其他变体,但结果是一样的。 在config.php中,我更改:

 $config['permitted_uri_chars'] = 'a-z 0-9~%.:_-';
 to
 $config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-а-яА-Я';
 after this i tried 
 $config['permitted_uri_chars'] = 'a-zA-Z\p{Cyrillic}0-9~%.:_\-';
结果是一样的。按摩“不允许的关键字符”。 当我删除.htaccess rile并再次将index.php放在config中时,所有使用西里尔字母的代码都可以正常工作

已解决- 我只是将.htaccess文件中的文本更改为:

RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]

现在,evriting可以正常工作了:)

在将字符串发送到url之前对其进行编码,然后再对其进行解码。我也尝试了这个方法。没有成功。您使用哪一个进行编码,请尝试base64_encode()和base64_decode()嗯。。。您的url和西里尔字符在浏览器输出中的外观如何(应该编码,对吗?)?也许这会有帮助:
RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]