SEO URL дает 404-ошибку в CodeIgniter - PullRequest
0 голосов
/ 08 февраля 2011

Я довольно новичок в codeigniter.Я знаю php.

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

Мой URL: / blog / this-is-my-title

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

, если end ($ this-> uri-> сегмент_array ()) существует в БД, затем загрузить эти данные в некоторый вид.

Я получаю ошибку 404 каждый разЯ захожу в / блог / что угодно

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

Ответы [ 3 ]

1 голос
/ 08 февраля 2011

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

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

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

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

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

    }

    еще

    { $ This-> load-> Вид ( 'somethingelse'); } * * Тысяча двадцать-один

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

1 голос
/ 08 февраля 2011

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

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

Маршрут типа:

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

может также достичь того, что вы хотите, если вы хотите, чтобы URI оставался просто `/ blog / this-is-my-title '

0 голосов
/ 29 июля 2011

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

Маршрутизация не требуется!

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
    }
}
  }
 ?>
...