Использование htaccess для удаления codeigniter index.php в подкаталоге - PullRequest
7 голосов
/ 20 июля 2011

Я пытаюсь удалить index.php из моих URL-адресов CI, но, следуя инструкциям, он, похоже, не работает.

У меня есть установка codeigniter, работающая в подкаталоге.В конфиге маршрутов установлен контроллер по умолчанию, называемый main, и еще один контроллер, называемый create.По умолчанию работает нормально, но переход к / create возвращает ошибку 324, говорящую о том, что данные не получены.Мой htaccess выглядит так:

<IfModule mod_rewrite.c>

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ /index.php?/$1 [L]

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

</IfModule>

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

Ответы [ 4 ]

26 голосов
/ 20 июля 2011

Этого должно быть достаточно:

<IfModule mod_rewrite.c>
RewriteEngine On

#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
#This last condition enables access to the images and css folders, and the robots.txt file
RewriteCond $1 !^(index\.php|public|images|robots\.txt|css)
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
8 голосов
/ 20 июля 2011

Это то, что я использую. Мой CodeIgniter также работает в подкаталоге.

RewriteEngine on
RewriteCond $1 !^(index\.php|images|swf|uploads|js|css|robots\.txt)
RewriteRule ^(.*)$ /ci/index.php/$1 [L]
6 голосов
/ 30 августа 2013

.htaccess add:

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

Перейдите в application / config / config.php и очистите значение конфигурации страницы индекса:

// Old

$config['index_page'] = "index.php";

// New

$config['index_page'] = "";

Решено Моя проблема, надеюсь, что и другие тоже ...:)

1 голос
/ 05 ноября 2013

Иногда вам нужно включить модуль перезаписи, запустить «apache2 enable module rewrite»:

sudo a2enmod rewrite

Вам необходимо перезапустить веб-сервер, чтобы применить изменения:

sudo service apache2 restart

Затем следуйте ответу Софии.

...