url_suffix в codeigniter не работает должным образом - PullRequest
0 голосов
/ 17 февраля 2012

Я новичок в Codeigniter и, используя Codeigniter 1.7, я создал файл .htaccess в корневом каталоге с кодом:

RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /ci/index.php/$1 [L]

для удаления index.php из URL, и добавлено

$config['url_suffix'] = ".html";

в файл config.php для предоставления суффикса по умолчанию для всех страниц. После этого я создал контроллер test.php с таким кодом:

class Test extends Controller{

function test(){
    parent::Controller();
}

function index(){
    $this->load->view('test');
}

}

и вид также:

<?php
    echo anchor(current_url(), 'This Page');
?>

Когда я перехожу на http://localhost/ci/test.html, она работает нормально, но когда я нажимаю на ссылку, автоматически сгенерированную функцией anchor (), на мой взгляд, она переходит на http://localhost/ci/index.php/test.html

Как удалить /index.php/ из URL, сгенерированных функцией anchor ()?

Также, когда я указываю на домашнюю страницу

локальный / CI / index.html

показывает ошибку 404 Page not found, но когда я указываю на

локальный / CI / index.php

работает нормально. Почему домашняя страница не преобразуется в index.html вместо index.php?

1 Ответ

2 голосов
/ 17 февраля 2012

Вы должны создать условие перезаписи с помощью htaccess. Чтобы удалить index.php, добавьте его в корневую папку .htaccess файл

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*) /index.php/$1 [L]

Если ваша загрузка Test в качестве контроллера по умолчанию, то это будет ваш базовый URL

локальный / CI / или же локальный / CI / тест / или же локальный / CI / тест / index.html

Убедитесь, что ваш config.php установлен на

$config['index_page'] = ''

Вы также должны использовать Codeigniter 2.1 для правильной поддержки php 5.

Также ваша функция конструктора должна быть такой, если вы используете php 5. Иначе придерживайтесь того, что у вас есть для php 4.

public function __construct()
{
    parent::__construct();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...