У меня есть небольшой проект, который я разработал для клиента в codeigniter 2.1.4, и теперь он настаивает на переходе на версию codeigniter 3 DEV. Я знаю, что это не хорошая идея, но … Моя проблема в том, что я не могу удалить index.php из URL.
Это мой файл .htaccess:
Options +FollowSymLinks RewriteEngine on # Send request via index.php RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?/$1 [L]
Я удалил index.php из файла config.php
Не повезло
Я переустановил сервер LAMP (я на Ubuntu 12.04), переконфигурировал
У меня есть другие проекты на моем локальном сервере, разработанные на Codeigniter 2.1.4 и Laravel 4, и они отлично работают, но это убивает меня.
Спасибо!
Я сделал так:
Создал .htaccess в корневой папке проекта с содержимым:
RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond $1 !^(index\.php|css|js|images|robots\.txt) RewriteRule ^(.*)$ index.php?$1 [L]
Затем в config.php i была изменена эта строка.
Из:
$config['url_suffix'] = 'index.php';
Для того, чтобы:
$config['url_suffix'] = '';
Пожалуйста, добавьте нижеприведенные коды в файл .htaccess и включите его прямо в /codeigniter_project_folder/.htacess
RewriteEngine on RewriteCond% {REQUEST_FILENAME}! -f RewriteCond% {REQUEST_FILENAME}! -d RewriteRule. * Index.php / $ 0 [PT, L]
Если на вашем сервере Apache включен mod_rewrite, вы можете легко удалить этот файл, используя файл .htaccess с некоторыми простыми правилами.
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L]
Удалить ?
после index.php
Добавьте следующие строки в файл .htaccess
RewriteCond %{REQUEST_URI} ^/system.* RewriteRule ^(.*)$ index.php?/$1 [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.+)$ index.php?/$1 [L]
А также отредактируйте файл application / config / config.php . с
$config['index_page'] = “”; $config['uri_protocol'] = “AUTO“;
Это будет работать.
Создайте файл .htacess
в корневой папке проекта /Your_codeigniter_project_folder/.htacess
и вставьте этот код
RewriteEngine On
RewriteCond% {REQUEST_FILENAME}! -f
RewriteCond% {REQUEST_FILENAME}! -d
RewriteRule ^ (. *) $ Index.php / $ 1 [L]
установить базовый URL-адрес в файле config.php $config['base_url'] = 'http://yourhost/CI_project_folder/';
$config['url_suffix'] = '.php';
* Если не работает, пожалуйста, проверьте это *
Убедитесь, что в корневой папке, где находится .htacess
, нет файла, имя которого совпадает с именем вашего контроллера. Пример: у вас есть контроллер users.php
и у вас есть файл в /Your_codeigniter_project_folder/users.php
Если удалите его /Your_codeigniter_project_folder/users.php
Убедитесь, что на вашем сервере включен режим перезаписи (удалите # из начала этой строки)
Модули LoadModule rewrite_module / mod_rewrite.so
создайте новый .htaccess файл в корне вашего проекта CI и добавьте туда свой код. Не изменяйте файл .htaccess в папке приложения. Это для меня работа
Просто загрузите CI версию 2.2.0
Скопируйте .htaccess
и htaccess.txt
из корневого каталога и вставьте его в проект Codeigniter 3.
Не забудьте изменить название проекта из файла .htaccess
.
Создайте новый файл htaccess в вашей www / project_folder или в htdocs / project_folder
Убедитесь, что mod_rewrite работает, используя echo phpinfo()
Просто вставьте следующий код, и он должен работать:
<IfModule mod_rewrite.c> RewriteEngine on RewriteCond $1 !^(index\.php|images|robots\.txt) RewriteRule ^(.*)$ /project_folder/index.php/$1 [L] </IfModule> <IfModule !mod_rewrite.c> ErrorDocument 404 /index.php </IfModule>
Измените папку проекта на другую
Я снова клонировал репозиторий git и сделал чистую установку лампы, и теперь она работает.