【问题标题】:Code igniter - 404 not found, routes issue, ssh serverCodeigniter - 404 未找到,路由问题,ssh 服务器
【发布时间】:2013-12-16 18:57:50
【问题描述】:

首先,我对 codeigniter 非常熟悉,我已经在多个场合使用过它。现在我也有一个学校项目,我在服务器上安装了 codeigniter,但我相信我遇到了路由问题。

所以关于服务器的附加信息与我使用的正常环境不同,服务器使用 SSH,我认为它受到了非常奇怪的保护。您还需要用户名和密码才能首先查看 URL。 (我觉得很奇怪)

如果这有助于网址是: https://clipper.encs.concordia.ca/~pyc353_2/ 和凭据是(用户名:pyc353_2,密码:FMaqRb)

现在我可以看到我在路由中设置为“default_controller”的任何页面,但问题是试图转到任何其他页面。现在我正在尝试访问寄存器控制器,我只是得到 404(如果我将其设置为默认值,它会起作用)

我将链接所有我认为可能与错误相关的代码,希望它不是服务器设置,因为我无法控制任何更改。

config.php

$config['base_url'] = 'https://clipper.encs.concordia.ca/~pyc353_2/';
$config['index_page'] = '';
$config['uri_protocol'] = 'AUTO';

routes.php

$route['default_controller'] = "test";

.htaccess(可能有更好的代码来执行此操作,但我过去使用它没问题,即使我删除 htaccess 并将 index.php 添加回'index_page',路由也不起作用)

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [PT,L] 
</IfModule>

所以我尝试在 url 中访问我的页面不同变体,例如:(stackoverflow 不允许我发布超过 2 个物理链接)

clipper.encs.concordia.ca/~pyc353_2/register

clipper.encs.concordia.ca/~pyc353_2/index.php/register

虽然 /index.php/ 错误消息是:“没有指定输入文件。”

所以我希望我的解释足够清楚,很难解释我不了解源问题的东西。如果您需要任何其他信息,请随时询问。我真的需要解决这个问题才能继续我的项目。

编辑

我不知道这是否相关,但 404 消息甚至不是 codeigniter 样式,它只是看起来像一个普通的 web 404

我还在查看服务器上的路径,这是层次结构:/www/groups/p/py_comp353_2 我不知道这是否也会影响任何事情?

较新的编辑

按照我在这里找到的内容:http://ellislab.com/codeigniter/user-guide/installation/troubleshooting.html

将 index.php 更改为 index.php? (并删除 htaccess)实际上确实使路由工作。现在我对此很满意,我可以继续工作,但是这是一个丑陋的解决方案,有人知道如何保持路由工作并删除 index.php 吗?来自我的 URI?

【问题讨论】:

    标签: codeigniter url ssh routes


    【解决方案1】:

    您的 htaccess 似乎无法正常工作。

    为了确认,创建一个新的 PHP 文件并写下这一行:

    echo phpinfo();
    

    在该页面上尝试搜索“mod_rewrite”,如果启用,您将在“Loaded Modules”下看到它

    很有可能,没有启用。

    在你的服务器上试试这个:

    a2enmod enable
    

    然后重启apache服务器。

    要在 debian 上重新启动,这应该可以工作:

    service apache2 restart
    

    对于 CentOS,这应该可以:

    apachectl restart
    

    那总是不能解决问题。

    即便如此,之后还是尝试在正常模式下安装 CI。 (一切都处于正常模式:htaccess 和以前一样,并且 URL 中没有 index.php)

    如果不起作用,您可能需要更改 apache 配置文件 httpd.conf

    尝试搜索此行:

    #LoadModule rewrite_module modules/mod_rewrite.so
    

    去掉#号来取消注释

    重新启动 Apache 服务器。

    现在再测试一次。

    您还可以做其他事情来启用 mod_rewrite。

    【讨论】:

      猜你喜欢
      • 2015-10-04
      • 2021-07-28
      • 2014-06-08
      • 1970-01-01
      • 2021-07-15
      • 1970-01-01
      • 1970-01-01
      • 2018-12-04
      • 2014-11-27
      相关资源
      最近更新 更多