2012-04-27 61 views
2

你好吗?URI路由不起作用(多语言)

摘要:我试图从本地主机迁移网站到亚马逊EC2和几乎任何路线带来的“请求的URL example.com/xxx/yyy/此服务器上找到。

语境:

  • 使用笨的public_html中,应用程序的结构和系统
  • 我们b语言的URI。例如:localhost/public_html/es/main。
  • 对于测试,一页(注册)它的路由方式不同:localhost/public_html/admin/register。
  • 该页面从localhost运行。

问题: 我上传的网页对我的EC2,当我尝试访问,几乎每一页显示404错误。只是寄存器页的作品,但只有当我通过example.com/index.php/admin/registerexample.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

开始寻找的重要一点是找到命中路由功能的字符串,并查看它与您定义的routes-regex的不同之处;你不需要单独模式开始和结束? – 2012-04-27 10:35:46

回答

4

的问题是在httpd.conf,其中有 “AllowOverride” 为的public_html(其中我有.htacces文件)设置为“无”。我只是不得不将它更改为全部。

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

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'] = “” 
+1

谢谢,我探讨了它,但我已经有$ config ['index_page'] =“”,我的.htaccess很好。这个问题是在httpd.conf中,但无论如何,非常感谢您的帮助! – 2012-04-30 09:04:36