为什么我的网址重定向不起作用?

Fra*_*ank 2 php codeigniter codeigniter-url codeigniter-2

我下载CodeIgniter 2.1.0,然后按照CodeIgniter 2.1.0上的教程进行操作.

问题是当我尝试在此URL中提交表单时:

http://localhost/CodeIgniter/index.php/news/create
Run Code Online (Sandbox Code Playgroud)

该页面将重定向到此URL:

http://localhost/CodeIgniter/index.php/news/localhost/CodeIgniter/index.php/news/create
Run Code Online (Sandbox Code Playgroud)

我厌倦了很多改变route.php的方法,但它不起作用.我怎样才能解决这个问题??

route.php

$route['news/create'] = 'news/create';
$route['news/(:any)'] = 'news/view/$1';
$route['news'] = 'news';
$route['(:any)'] = 'pages/view/$1';
$route['default_controller'] = 'pages/view';
Run Code Online (Sandbox Code Playgroud)

这是表单页面的代码:

public function create()
{
    $this->load->helper('form');
    $this->load->library('form_validation');

    $data['title'] = 'Create a news item';

    $this->form_validation->set_rules('title', 'Title', 'required');
    $this->form_validation->set_rules('text', 'text', 'required');

    if ($this->form_validation->run() === FALSE)
    {
        $this->load->view('templates/header', $data);   
        $this->load->view('news/create');
        $this->load->view('templates/footer');

    }
    else
    {
        $this->news_model->set_news();
        $this->load->view('news/success');
    }
}
Run Code Online (Sandbox Code Playgroud)

我注意到当页面加载时的表单页面,下面的代码段将被执行,但是,else段从未得到执行的更改.

if ($this->form_validation->run() === FALSE)
    {
        $this->load->view('templates/header', $data);   
        $this->load->view('news/create');
        $this->load->view('templates/footer');

    }
Run Code Online (Sandbox Code Playgroud)

这是表单页面,没什么特别的,只需调用上面显示的create函数即可. create.php

<h2>Create a news item</h2>

<?php echo validation_errors(); ?>

<?php echo form_open('news/create') ?>

<label for="title">Title</label> 
<input type="input" name="title" /><br />

<label for="text">Text</label>
<textarea name="text"></textarea><br />

<input type="submit" name="submit" value="Create news item" /> 

</form>
Run Code Online (Sandbox Code Playgroud)

这是表单页面的HTML:

<html>
<head>
<title>Create a news item - CodeIgniter 2 Tutorial</title>
</head>
<body>
<h1>CodeIgniter 2 tutorial</h1><h2>Create a news item</h2>

<form action="localhost/CodeIgniter/index.php/news/create" method="post" accept-charset="utf-8">
<label for="title">Title</label> 
<input type="input" name="title" /><br />

<label for="text">Text</label>
<textarea name="text"></textarea><br />

<input type="submit" name="submit" value="Create news item" /> 

</form><strong>&copy;2012</strong>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

当我按下create new item按钮时,URL改为

http://localhost/CodeIgniter/index.php/news/localhost/CodeIgniter/index.php/news/create
Run Code Online (Sandbox Code Playgroud)

和页面显示 404 Pages Not Found

Fra*_*ank 6

我找到了解决方案,它是由不正确的基本网址设置引起的.

在我的基本网址之前: $config['base_url'] = 'localhost/CodeIgniter';

现在我把它改成了

$config['base_url'] = 'http://localhost/CodeIgniter/';
Run Code Online (Sandbox Code Playgroud)

它现在工作正常.

谢谢谁试图帮助:)