Убрать index.php из URL

 

По умолчанию CodeIgniter работает с указанием index.php в URL страницы. Это обусловлено тем, что файл index.php реализует задачу инициализации приложения и подключения основных библиотек ядра CodeIgniter. Часто возникает необходимость убрать упоминание index.php из URL, что легко реализуемо при помощи директив Rewrite в файле .htaccess и небольшой донастройки в файле application/config/config.php.

Правила перенаправления в файле .htaccess

Включаем модуль mod_rewrite, задаем для него перенаправление всех запросов для несуществующих ресурсов на index.php:

  1. <IfModule mod_rewrite.c>
  2. RewriteEngine On
  3. RewriteBase /
  4. RewriteCond %{REQUEST_FILENAME} !-f
  5. RewriteCond %{REQUEST_FILENAME} !-d
  6. RewriteRule ^(.*)$ index.php/$1 [L]
  7. </IfModule>

Если ваше приложение на базе CodeIgniter расположено не в корневом каталоге домена, укажите в строке RewriteBase / тот каталог, где расположено ваше приложение. Строки

  1. RewriteCond %{REQUEST_FILENAME} !-f
  2. RewriteCond %{REQUEST_FILENAME} !-d
указывают, что правило будет работать только для запросов на ресурсы(файлы или каталоги), которые не существуют в файловой системе.
Строка RewriteRule ^(.*)$ index.php/$1 [L] указывает, что все запросы нужно направить на файл index.php.
Теперь вместо URL /index.php/welcome можно смело использовать /welcome.
Примечание, если после внесения в файл .htaccess описанного кода сервер на любой запрос отвечает Internal Server Error (код ошибки 500), значит вы скорее всего допустили опечатку при редактировании файла.

Настройка в application/config/config.php

Для того, чтобы вспомогательные функции URL CodeIgniter и системные функции генерировали адреса без index.php нужно в файле application/config/config.php строку $config['index_page'] = "index.php"; заменить на $config['index_page'] = "";. Кроме того, в этом же файле нужно будет выбрать подходящее для конфигурации вашего сервера значение параметра 'uri_protocol'. Чаще всего это

  1. $config['uri_protocol'] = "PATH_INFO";

в папке application

в папке application нет блин никакой папки config!!!!!!!!!!!!!!

на хостинге No

на хостинге No input file specified
куда копать ?

Копать в

Копать в сторону режима работы PHP. Если режим работы - FastCGI то нужны другие правила для mod_rewrite

ничего не

ничего не помогает... пойду убьюсь апстенку

Отлично!

Отлично! Работает! Спасибо! Не работает только перенаправление всех запросов для несуществующих ресурсов - хотя все зделал как описано.

При URI PROTOCOL - ORIG_PATH_INFO и QUERY_STRING переадресовывает все, вплоть и до существующих ресурсов, а при PATH_INFO и REQUEST_URI переадресации нет, только убралось index.php

Отлично!

Отлично! Работает! Спасибо! Не работает только перенаправление всех запросов для несуществующих ресурсов - хотя все зделал как описано.

При URI PROTOCOL - ORIG_PATH_INFO и QUERY_STRING переадресовывает все, вплоть и до существующих ресурсов, а при PATH_INFO и REQUEST_URI переадресации нет, только убралось index.php

Заработало!

Заработало! :)

После копирования из винды, ещё 5 минут назад всё отказывалось работать! Ещё раз скопировал содержимое .htaccess, перезагрузил систему и... О чудо! Всё заработало! ;)

на денвере

на денвере работает..а на хостинге не пошло..
я тупо сделал по хелпу самого фреймворка - на хостинге заработало!
а на денвере работает только этот вариант!

На денвере все

На денвере все работало хорошо на хостинге пишет
No input file specified.
подозреваю что это из-за .htaccess

Скорее из-за

Скорее из-за того, что на хостинге PHP работает в CGI/FastCGI режиме.
Поищите информацию по поводу RewriteRule для PHP-скриптов в CGI/FastCGI режиме. Не найдете - дайте подробную информацию по конфигурации, попробую помочь

Не помогло, я

Не помогло, я баранко

А вы все об

А вы все об одном, а мне вот любви хочется, большой и чистой!

спасибо, очень

спасибо, очень помогло!

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".

Отправить комментарий

CAPTCHA
Этот вопрос предназначен для того, чтобы отсеять ботов
16 + 4 =
Решите простой математический пример и введите результат. К примеру, для вопроса 1+3 нужно ввести 4

Вход в систему

Последние комментарии