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 路由不起作用(多语言)的主要内容,如果未能解决你的问题,请参考以下文章