也许你可以帮助我。我的codeigniter设置有问题。这是一个全新的安装,我所做的就是欢迎控制器:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Welcome extends CI_Controller {
function __construct()
{
parent::__construct();
}
function index()
{
$this->load->view('welcome_message');
}
function test()
{
echo "test";
}
}
/* End of file welcome.php */
/* Location: ./application/controllers/welcome.php */
除此之外,一切都是开箱即用的。这是我正在使用的.htaccess文件:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteEngine on
RewriteCond %{QUERY_STRING} callback
RewriteRule (.*) /$1? [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
<IfModule !mod_rewrite.c>
# If we don't have mod_rewrite installed, all 404's
# can be sent to index.php, and everything works as normal.
# Submitted by: ElliotHaughin
ErrorDocument 404 /index.php
</IfModule>
不记得我从哪里得到这个,但它正在使用其他版本的codeigniter。所以现在,当我到达这个网址时:
http://myurl.com/welcome/index
这些页面很好,但是当我到达这个网址时,我得到了:
我找不到页面。出于某种原因,我似乎需要为要找到的页面加载视图文件。我已经完成了多次ci安装,这是我第一次遇到这么多问题。
我需要echo这样工作的原因是因为我使用它来使用print_r吐出大量信息,所以我并不总是使用控制器。我有这个安装的另一个问题,但这是另一个问题。
谢谢你们!
这个问题真的很奇怪,这在firefox中不会发生,但它发生在ie和chrome中。我以前从未见过这样的事情。
不幸的是我读错了错误... doh!当我点击欢迎/测试时,我得到一个“哎呀!此链接似乎已被破坏。”,而不是404错误。就是说,我得到了
找不到网页HTTP 404 最有可能的原因:•可能有一个 在地址中输入错误。 •如果你 点击一个链接,它可能是出于 日期。 你可以尝试什么: 重新输入地址。
Go back to the previous page. Go to and look for the information you want. More information
此错误(未找到HTTP 404)表示 Internet Explorer能够 连接到网站,但页面 你想要的却找不到。它的 可能是网页 暂时不可用。 或者,该网站可能有 更改或删除了网页。对于 有关HTTP错误的更多信息, 请参阅帮助。
如果我尝试点击不存在的页面,我会收到404错误,这是我所期望的。
答案 0 :(得分:0)
尝试将uri_protocol设置为
$config['uri_protocol'] = "REQUEST_URI";
codeigniter 2 htaccess routing differences
这是我的HTACCESS
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase /#Removes access to the system folder by users. #Additionally this will allow you to create a System.php controller, #previously this would not have been possible. #'system' can be replaced if you have renamed your system folder. RewriteCond %{REQUEST_URI} ^system.* RewriteRule ^(.*)$ /index.php?/$1 [L] #When your application folder isn't in the system folder #This snippet prevents user access to the application folder #Submitted by: Fabdrol #Rename 'application' to your applications folder name. RewriteCond %{REQUEST_URI} ^application.* RewriteRule ^(.*)$ /index.php?/$1 [L] #Checks to see if the user is attempting to access a valid file, #such as an image or css document, if this isn't true it sends the #request to index.php RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>
<IfModule !mod_rewrite.c> # If we don't have mod_rewrite installed, all 404's # can be sent to index.php, and everything works as normal. # Submitted by: ElliotHaughin
ErrorDocument 404 /index.php
</IfModule>
答案 1 :(得分:0)
a2enmod rewrite /etc/init.d/apache2
reload
因为你没有apache的mod重写,代码点火器必须搞砸了一些重写规则,并在帖子后面弄乱你的表单数据。