我有这样的网址按摩“不允许的关键字符”:
/project/category/Португалски
如果 url 只包含拉丁字符问题就消失了。
删除 index.php 后出现问题。为了删除我使用
config.php :
$config['index_page'] = "";
和
.htacces
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?$1 [L]
在这个 url 工作正常之后,这个 url 的白色西里尔字符除外。我在我面前阅读了很多问题,并尝试了不同的解决方案,例如:
在核心/输入/ _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 放入配置中时,所有西里尔字母都可以正常工作。
已解决- 我只是将 .htaccess 文件中的文本更改为:
RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]
现在evriting工作正常:)