【问题标题】:Routing in codeigniter phpcodeigniter php中的路由
【发布时间】:2013-04-01 17:15:27
【问题描述】:

更新

如果我浏览像

这样的网址

localhost/myapp/index.php/about_us/index

它有效。网址中的这个 index.php 是什么?我是否需要在一些配置文件中提及它,以便它被附加并在站点的菜单/链接中形成正确的 url?

原始问题

我不了解 PHP,但我有一个项目,它在 php (codeigniter) 中转换为 Ruby on Rails。 我可以很好地设置数据库和应用程序,当我使用基本 url 浏览应用程序(不提及控制器和操作)时,它会正确加载页面。但是一旦我提到像

这样的 url

localhost/myapp/home/index

它显示消息

在此服务器上找不到请求的 URL。

如果我将默认控制器更改为 routes.php 中的任何内容,则使用 index 方法的页面可以正常工作,但不能明确提及控制器和操作。

我不确定是什么问题,我不知道路由在 php 中是如何工作的 :(

任何帮助将不胜感激。

【问题讨论】:

  • 你不知道 php 并且你正在寻找 rails 路由 ????
  • 你的网络根是什么? localhost/myapp/?如果是这样,您是否有 home 控制器和 index 操作?
  • @pramodtech both[Rails/codeigniter] 都使用 MVC 设计模式,所以概念部分或多或少相同
  • @Timur web root 是 localhost/myapp/ 是的,我确实有带索引操作的家庭控制器
  • @swapnesh 是的,我明白了,这就是为什么对显式 url 不起作用感到困惑的原因。

标签: php ruby-on-rails codeigniter


【解决方案1】:

在 CodeIgniter 中,所有请求都通过 index.php 文件定向,其作用类似于 front controller

index.php 必须出现在 URL 中,除非您已创建解决方案来消除它。使用 Apache 时,通常使用 .htaccess 文件完成。有数百篇关于此技术的文章和问题——您当然可以找到对您有所帮助的东西。

关于 URL 和用于定义 index.php 的配置选项,CodeIgniter URL 帮助函数(例如 site_url())使用 application/config/config.php 中的配置设置 $config['index_page']。如果您使用 .htaccess 解决方案从您的 URL 中删除 index.php,您可以将此设置设为空白:

$config['index_page'] = '';

当您想将 index.php 重命名为其他名称时,此设置也很有用(不是很常见)。

【讨论】:

    【解决方案2】:

    您似乎没有正确配置您的网络服务器。有关 Apache 的详细信息,请参阅此问题:routing problem in codeigniter

    这里是 nginx 的规则:http://wiki.nginx.org/Codeigniter

    【讨论】:

      猜你喜欢
      • 2016-11-12
      • 2011-03-15
      • 2011-11-15
      • 1970-01-01
      • 2012-09-29
      • 2016-06-11
      • 1970-01-01
      相关资源
      最近更新 更多