【问题标题】:URI routing not working (multilingual)URI 路由不起作用(多语言)
【发布时间】: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']; 

【问题讨论】:

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

标签: php .htaccess codeigniter routing httpd.conf


【解决方案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 中,但无论如何非常感谢您的帮助!!
    猜你喜欢
    • 2011-02-16
    • 2020-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-12
    • 2013-12-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多