URI 路由不起作用(多语言)

Posted

技术标签:

【中文标题】URI 路由不起作用(多语言)【英文标题】:URI routing not working (multilingual) 【发布时间】:2012-05-08 02:09:01 【问题描述】:

你好吗?

总结:我正在尝试将我的网站从 localhost 移动到 amazon-ec2 并且几乎任何路线都会带来“请求的 URL 示例在此服务器上找不到 .com/xxx/yyy/。

上下文:

在 public_html、应用程序和系统中使用 codeigniter 结构。 URI 中的 Web 语言。示例:localhost/public_html/es/main。 对于测试,一页(注册)它的路由方式不同:localhost/public_html/admin/register。 页面从本地主机运行。

问题: 我将页面上传到我的 EC2,当我尝试访问时,几乎每个页面都显示 404 错误。只是 register 页面有效,但前提是我通过 example.com/index.php/admin/register 调用它(example.com/admin/register 带有同样的 404 错误)。

非常欢迎任何建议或想法来探索!谢谢!!

PS:如果有帮助,我将分享我当前的 routes.php 代码。

$route['default_controller'] = "main";
$route['404_override'] = '';
$route['^(en|es)/(.+)$'] = "$2";
$route['^(en|es)$'] = $route['default_controller']; 

【问题讨论】:

开始查找的简单点是找到命中路由函数的字符串,看看它与您定义的路由正则表达式有何不同;你不需要单独列出模式的开始和结束吗? 【参考方案1】:

问题出在 httpd.conf 中,其中 public_html(我有 .htacces 文件)的“AllowOverride”设置为“None”。

我只需要将其更改为全部。

感谢 AchrafSoltani 和 Grigorash 的尝试,非常感谢!

【讨论】:

【参考方案2】:

问题:我将页面上传到我的EC2,当我尝试访问时,几乎每个页面都显示404错误。只需注册页面即可,但前提是我通过 example.com/index.php/admin/register 调用它(example.com/admin/register 带有相同的 404 错误)。

这意味着 .htaccess 丢失未正确设置。默认情况下,代码点火器依赖 index.php 来处理所有请求,但由于它在 URL 上看起来很难看,您应该添加一个带有正确参数的 .htaccess 以将其从 url 中删除,然后从 system/application 打开 config.php /config 目录并替换:

$config['index_page'] = “index.php” 

$config['index_page'] = “”

【讨论】:

谢谢,我探索了它,但我已经有了 $config['index_page'] = “” 并且我的 .htaccess 很好。问题出在 httpd.conf 中,但无论如何非常感谢您的帮助!!

以上是关于URI 路由不起作用(多语言)的主要内容,如果未能解决你的问题,请参考以下文章

带有 IStringLocalizer 的 RazorPages 不起作用

使用 GetX 改变主题?

如何为真正的多语言网站设置 CodeIgniter?

用蜡染写 unicode 字符不起作用

下载的mbtiles中的多语言支持

Mac OS X 中的 setlocale 不起作用