2011-02-08 3 views
0

Я довольно новичок в кодеригенере. Я знаю php.SEO url дает 404-error в CodeIgniter

Как я могу выполнить загрузку нужного вида?

Мой URL:/блог/это-это-мой титул,

Я сказал что-то вроде контроллера

если конец ($ this-> uri-> segment_array()) не существует в Затем DB загружает эти данные в некоторый вид.

Я получаю каждый раз 404-я ошибка доступа/блог/все, что

Что я вижу не так?

+0

дайте нам код, который вы используете в настоящее время, если вы хотите получить конкретную помощь – jondavidjohn

ответ

1

, если вы используете маршрутизацию, адрес /blog/this-is-my-title всегда будет 404, потому что CI ищет метод под названием this-is-my-title, которого, конечно, не существует.

Быстрое исправления поместить ваш код отображения поста в другую функцию и редактирование URL, чтобы получить доступ сообщения от сказать: /blog/view/the-post-title

Маршрут, как:

$route['blog/(:any)'] = "blog/view/$1";

может также достичь того, что вы хотите, если вы хотите, чтобы URI, чтобы остаться, как только `/ блог/это-это-мой-титул»

1

может быть больше возможностей:

  1. Наиболее распространенный - mod_rewrite не активен
  2. .htaccess не настроен правильно (если и не отредактирован его попробовать /blog/index.php/whatever)
  3. Контроллер не существует или помещается в ту папку

    предложение: если вам нужно только изменить данные использовать другой вид в том же контроллере

    если (что-то) {

    $ this-> load-> вид ('любой');

    }

    еще

    { $ this-> load-> Вид ('somethingelse'); }

    Если ни одна из этих работ не отправляет образец кода и конфигурацию .htaccess, и я посмотрю.

0

Лучший способ решить эту проблему - переназначить контроллер. Таким образом, вы все равно можете использовать один и тот же контроллер для других целей.

Не требуется маршрутизации!

enter code here 
<?php 
class Blog extends Controller { 
function __construct() 
{ 
    parent::__construct(); 
} 
public function _remap($method, $params = array()) 
{ 
    if (method_exists($this, $method)) 
    { 
     $this->$method(); 
    } 
    else 
    { 
     $this->show_post(); 
    } 
} 
function index() 
{ 
    // show blog front page 
    echo 'blog'; 
} 
function edit() 
{ 
    // edit blog entry 
} 
function category() 
{ 
    // list entries for this category 
} 
function show_post() 
{ 
    $url_title = $this->uri->segment(2); 
    // get the post by the url_title 
    if(NO RESULTS) 
    { 
     show_404(); 
    } 
    else 
    { 
     // show post 
    } 
} 
    } 
?> 
Смежные вопросы