Как удалить index.php в CodeIgniter?

У меня проблема. Мне нужно удалить index.php из URL-адреса в рамках CodeIgniter. Кто-нибудь может мне помочь?

3 ответа

Для lighttpd:

включите модуль mod_rewrite и установите это в вас lighttpd.conf

server.document-root = "/var/www/ci/",
    url.rewrite-once = (
        "/(.*)\.(.*)" => "$0",
        "/(css|files|img|js|stats|user_guide)/" => "$0",
        "^/([^.]+)$" => "/index.php/$1"
    )

Вам просто нужно создать файл.htaccess в папке проекта и написать:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

 # Rewrite all other URLs to index.php/URL 
  RewriteRule ^(.*)$ index.php?url=$1 [PT,L] 

  </IfModule>
     <IfModule !mod_rewrite.c>
         ErrorDocument 404 index.php
    </IfModule>

   #And You don't need to define in base_url in config file:

      $config['base_url'] = '';// blank it.

Я надеюсь, что вы понимаете..

Чтобы избежать "index.php" из URL-адреса codeigniter, выполните следующие действия.

1. Откройте файл config.php из каталога system/application/config и замените

$config['index_page'] = “index.php” 
by 
$config['index_page'] = “”;

2. Создайте файл ".htaccess" в корне каталога CodeIgniter (где находится системный каталог), откройте файл с помощью вашего любимого текстового редактора, запишите следующий скрипт и сохраните его:

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

3. В некоторых случаях настройка по умолчанию для uri_protocol не работает должным образом. Чтобы решить эту проблему просто замените

$config['uri_protocol'] = “AUTO” 
by 
$config['uri_protocol'] = “REQUEST_URI”

из системы / приложения /config/config.php

Другие вопросы по тегам