Удалить index.php в codeigniter 2.1.0 - PullRequest
9 голосов
/ 12 марта 2012

Я попробовал все в Google, связанное с удалением index.php из URL в codeigniter, но решение для меня не помогло. Я использую codeigniter версии 2.1.0 Как мне удалить index из моего URL?

Спасибо

Ответы [ 9 ]

22 голосов
/ 12 марта 2012

В application/config.php убедитесь, что

$config['index_page'] = "";

Затем установите это как ваш .htaccess файл:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /

    #Removes access to the system folder by users.
    #Additionally this will allow you to create a System.php controller,
    #previously this would not have been possible.
    #'system' can be replaced if you have renamed your system folder.
    RewriteCond %{REQUEST_URI} ^system.*
    RewriteRule ^(.*)$ /index.php?/$1 [L]

    #When your application folder isn't in the system folder
    #This snippet prevents user access to the application folder
    #Submitted by: Fabdrol
    #Rename 'application' to your applications folder name.
    RewriteCond %{REQUEST_URI} ^application.*
    RewriteRule ^(.*)$ /index.php?/$1 [L]

    #Checks to see if the user is attempting to access a valid file,
    #such as an image or css document, if this isn't true it sends the
    #request to index.php
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>

<IfModule !mod_rewrite.c>
    # If we don't have mod_rewrite installed, all 404's
    # can be sent to index.php, and everything works as normal.
    # Submitted by: ElliotHaughin

    ErrorDocument 404 /index.php
</IfModule> 

Все готово!

5 голосов
/ 06 ноября 2012

Для меня решение Рафаэля Кайксета не сработало, но это сработало:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [PT,L] 
1 голос
/ 23 ноября 2013

проверьте ваш файл httpd.conf

измените

AllowOverride None

на

AllowOverride All
1 голос
/ 26 марта 2013

Я протестировал это на apache2 на многих разных хостингах, и он прекрасно работает.

используйте этот htaccess

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

убедитесь, что у вас есть enabled mod_rewirte с phpinfo();

затем сделайте это в config / config.php:

$config['index_page']   = '';
|
| 'AUTO'            Default - auto detects
| 'PATH_INFO'       Uses the PATH_INFO
| 'QUERY_STRING'    Uses the QUERY_STRING
| 'REQUEST_URI'     Uses the REQUEST_URI
| 'ORIG_PATH_INFO'  Uses the ORIG_PATH_INFO
|
*/
$config['uri_protocol'] = 'AUTO';

, если он еще не работает, попробуйте заменить $config['uri_protocol']='AUTO' на один из перечисленных внутри application/config/config.php файла в строке 40/54:

иногда я использовал: REQUEST_URI вместо AUTO или "QUERY_STRING" для хостинга goDaddy

1 голос
/ 12 марта 2012

Вы пытались использовать пример, приведенный в руководстве пользователя CodeIgniter?

По умолчанию файл index.php будет включен в ваши URL-адреса:

example.com/index.php/news/article/my_article

Выможно легко удалить этот файл, используя файл .htaccess с некоторыми простыми правилами.Вот пример такого файла, использующего «отрицательный» метод, в котором все перенаправлено, кроме указанных элементов:

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

В приведенном выше примере любой HTTP-запрос, отличный от запросов для index.php,images, а файл robots.txt обрабатывается как запрос для вашего файла index.php.

http://codeigniter.com/user_guide/general/urls.html

0 голосов
/ 11 июня 2015

Вам просто нужно создать файл .htaccess в папке проекта и написать: ПереписатьEngine 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.

 I hope it will work perfectly ...
0 голосов
/ 19 мая 2014

Не забудьте изменить конфигурационный файл!

применение / config.php

$config['index_page'] = '';

.htaccess

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [PT,L]
0 голосов
/ 28 мая 2013

Это то, что я использую и работает.Используйте этот код в вашем .htaccess

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* website/index.php/$0 [PT,L] 

Просто убедитесь, что .htaccess находится в вашей корневой папке.(т.е.: xampp / htdocs)

Затем в вашем config.php (application \ config) замените config['index_page']='index.php' на config['index_page']=''.

0 голосов
/ 12 марта 2012

В дополнение к файлу .htaccess, предоставленному Робертом Стэнли (см. Его ответ), перейдите к application/config/config.php, найдите $config['index_page'] = "index.php"; и замените его на $config['index_page'] = "";

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...