【问题标题】:Codeigniter custom route does it require a controller?Codeigniter 自定义路由是否需要控制器?
【发布时间】:2012-03-15 23:02:20
【问题描述】:

好的,我正在尝试做一些自定义路由。简单的东西,所以我想。我想做的就是捕捉“home”、“main”、“logo”之类的东西,然后将它们重新映射到特定的控制器。但是,我将路由插入到 routes.php 中,当我转到 domain.com/home 时,我得到一个找不到文件的错误,甚至不是 404

所以我的问题是我是否需要一个 home、main、logo 控制器来支持这一点,或者它可以只完成路由。

我的 routes.php 目前看起来像

$route['default_controller'] = "landing";
$route['404_override'] = '';
//custom routes
$route['home'] = "landing";

这是我得到的错误页面,就像我说的那样,甚至你认为你应该得到的 CI 404 错误页面都没有。

找不到

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

此外,在尝试访问时遇到 404 Not Found 错误 使用 ErrorDocument 来处理请求。

Apache/2.2.20 (Unix) mod_ssl/2.2.20 OpenSSL/0.9.8e-fips-rhel5 mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 服务器 在 asylum.com 端口 80

【问题讨论】:

  • 您可以发布您正在使用的.htaccess 文件吗?
  • 没有当前的.htaccess,不知道我需要一个带有CI的
  • 是的,这就是问题所在。使用 apache,您需要一个 htaccess 文件将所有“丢失”文件路由到 index.php
  • 是的,这就是问题所在。过了一会儿,我意识到我有一个 htaccess 文件,但我设法用另一个项目中的其他东西一次覆盖了它,所以我破坏了我自己的脚本

标签: php codeigniter codeigniter-2


【解决方案1】:

有人参考后确定。我意识到我确实有一个 .htaccess 文件,但是。我一定已经覆盖了它的原始内容,从而破坏了 CI。添加重写规则后,它已解决

RewriteEngine on
RewriteCond $1 !^(index\.php|static|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多