страница не найдена на codeigeniter - PullRequest
1 голос
/ 05 марта 2011

Может быть, вы можете помочь мне здесь. У меня проблема с моей настройкой 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. так что сейчас, когда я добрался до этого URL:

http://myurl.com/welcome/index

страницы появляются нормально, но когда я попал на этот URL, я получаю:

http://myurl.com/welcome/test

Я получил страницу, не найденную. По какой-то причине кажется, что мне нужно загрузить файл вида для поиска страницы. Я сделал несколько установок ci, и это первый раз, когда у меня было так много проблем.

Причина, по которой мне нужно, чтобы эхо работало так, заключается в том, что я использую его, чтобы выплевывать много информации с помощью print_r, поэтому я не всегда использую контроллер. У меня есть другая проблема с этой установкой, но это для другого вопроса.

спасибо, ребята!

Обновление

Что действительно странно в этой проблеме, так это то, что это не происходит в Firefox, но это происходит в ie и chrome. Я никогда не видел ничего подобного раньше.

обновление

К сожалению, я неправильно прочитал ошибку ... дох! Когда я нажимаю на приветствие / тест, я получаю сообщение "Ой! Эта ссылка, похоже, не работает", а не ошибка 404. И на то есть я получаю

Веб-страница не может быть найдена HTTP 404 Наиболее вероятные причины: • Может быть опечатка в адресе. •Если ты нажал на ссылку, это может быть из Дата. То, что вы можете попробовать: Повторите адрес.

 Go back to the previous page. 

 Go to  and look for the information you want.  

 More information 

Эта ошибка (HTTP 404 Not Found) означает что Internet Explorer смог подключиться к сайту, но страница Вы хотели, не был найден. Это возможно, что веб-страница Временно недоступен. Кроме того, веб-сайт может иметь изменил или удалил веб-страницу. За больше информации об ошибках HTTP, см. справку.

Если я пытаюсь перейти на страницу, которая не существует, я получаю 404 ошибки, чего я и ожидаю.

Ответы [ 2 ]

0 голосов
/ 05 марта 2011

Привет, Джонатан, я рад, что смог исправить твою проблему.Все, что вам нужно было сделать, это включить переписывание модов Apache.

a2enmod rewrite /etc/init.d/apache2
reload

Поскольку у вас не было переписывания модов Apache, воспламенитель кода, должно быть, испортил некоторые правила переписывания и испортил данные вашей формы при обратной передаче.

0 голосов
/ 05 марта 2011

Попробуйте установить свой uri_protocol в $config['uri_protocol'] = "REQUEST_URI";

различия кодов 2 htaccess

Вот мой HTACCESS

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /</p>

<pre><code>#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]
</code>

# Если у нас не установлен mod_rewrite, все 404 # можно отправить в index.php, и все работает как обычно. # Представлено: ElliotHaughin

ErrorDocument 404 /index.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...