代码点火器 - 404找不到,路由问题,ssh服务器

时间:2013-11-30 20:07:46

标签: codeigniter url ssh routes

首先,我对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>

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

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

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

虽然使用/index.php/但是没有工作,但错误信息是:“没有指定输入文件。”

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

修改

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

此外,我正在查看服务器上的路径,这是层次结构:/ www / groups / p / py_comp353_2我不知道这是否会影响任何内容?

NEWER EDIT

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

将index.php更改为index.php? (并删除htaccess)实际上确实使路由工作。现在我对此感到高兴,我可以继续工作,但由于这是一个难看的解决方案,任何人都知道如何保持路由工作并删除index.php?来自我的URI?

1 个答案:

答案 0 :(得分:0)

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

要确认,请创建一个新的PHP文件并写下以下行:

echo phpinfo();

在该页面上尝试搜索“mod_rewrite”,如果已启用,您将在“已加载的模块”下看到它

很可能,它没有启用。

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

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。