URI路由无法正常工作(多语言)

时间:2012-04-27 10:08:23

标签: php .htaccess codeigniter routing httpd.conf

你好吗?

摘要:我正在尝试将我的网站从localhost移至amazon-ec2, 几乎 任何路由都会带来“请求的网址示例在此服务器上找不到.com / xxx / yyy /。

上下文

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

问题: 我将页面上传到我的EC2,当我尝试访问时,几乎每个页面都显示404错误。只需注册页面,但只有当我通过 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']; 

2 个答案:

答案 0 :(得分:4)

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

我只需将其更改为全部。

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

答案 1 :(得分:3)

  

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

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

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

$config['index_page'] = “”