seo 友好的 url 使用西里尔字符 х 字符,它总是得到 404。如何修复它?
Posted
技术标签:
【中文标题】seo 友好的 url 使用西里尔字符 х 字符,它总是得到 404。如何修复它?【英文标题】:seo frienldy url is using cyrillic х character and it is always getting 404. How to fix it? 【发布时间】:2019-05-25 11:45:19 【问题描述】:我的 codeigniter web 中存在 Seo 友好 URL 问题。
$route['(:any)'] = 'main/change_route/$1';
这里是配置文件夹中的 routes.php。任何请求都必须调用主类的change_route方法。
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class main extends CI_Controller
public function change_route($url='')
die(urldecode($url));
这是我的控制器,它只显示请求 URL。
所以我的问题就在这里。 http://localhost/safety/black-shoes-ар-гутал
以上网址工作正常并显示“black-shoes-ар-гутал”
但是http://localhost/safety/black-shoes-хар-гутал 这个网址总是得到 404。如果我要从这个网址中删除西里尔字母 'х' 字符,它就会正常工作。
我该如何解决?
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %REQUEST_FILENAME !-f
RewriteCond %REQUEST_FILENAME !-d
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
这是我的 .htaccess 。
【问题讨论】:
• 也许这有帮助:***.com/a/11172396/2412335 【参考方案1】:在 routes.php 文件中,使用 change
$route['translate_uri_dashes'] = FALSE
这个给
$route['translate_uri_dashes'] = TRUE;
还有在你的 config.php 文件中修改
$config['uri_protocol'] = 'REQUEST_URI';
到
$config['uri_protocol'] = 'PATH_INFO';
uri 将始终是 url-decoded 如果你想从你的 url 中删除控制器名称,请使用这个
$route['^(method1 | method2 | method3)(/:any)?$'] = "controllerName/$0";
如果你的方法有像
这样的下划线 "function method_name()
#yourcode
"
比用这个
$route['method-name'] ='controllerName/method_name';
如果我希望以上所有示例对您有所帮助
【讨论】:
以上是关于seo 友好的 url 使用西里尔字符 х 字符,它总是得到 404。如何修复它?的主要内容,如果未能解决你的问题,请参考以下文章