Я разработал проект, который использует CodeIgniter на ОС Windows. Проект отлично работает на XAMPP (Windows) и хостинг-сервере Linux (обновлен .htaccess на сервере для работы). Я хочу использовать Open Mandriva для целей разработки. Если я запускаю контроллер с помощью index.php, он работает.
Я перепробовал много примеров .htaccess правил, ссылок. Но контроллер не загружается.
Я старался: Невозможно удалить index.php из URL CodeIgniter, CodeIgniter удаляет index.php из URL а также
эта внешняя ссылка, и много других ссылок.
.htaccess код на машине с Windows
RewriteEngine on
RewriteCond $1 !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]
.htaccess код на хостинг-сервере Linux
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/system.*
RewriteRule ^(.*)$ index.php?/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.php?/$1 [L]
Оба не работают над Open Mandriva.
.путь доступа
/srv/www/html/ci/
Страница дает:
Ошибка 404, и объект не найден!
Путь файловой системы к моему проекту
/srv/www/html/ci/application/controllers/
и в браузере:
localhost/ci/branch
Проект работает, если я добавляю index.php как
localhost/ci/index.php/branch
Имеет ли это какое-либо отношение к конфигурации сервера http? Нужно ли устанавливать какой-либо пакет. Также я попробовал некоторые команды для Apache Rewrite Engine. Но я получаю ошибку как неизвестную команду.
Проверьте, не перезаписан ли двигатель включен.
Если нет, включите механизм перезаписи и перезапустите сервер.
sudo a2enmod rewrite
sudo service apache2 restart
Идти к
/etc/httpd/conf/httpd.conf - for Mandriva
/etc/apache2/apache2.conf - for Ubuntu
+ Изменить AllowOverride None
в AllowOverride All
Блок кода:
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# AllowOverride FileInfo AuthConfig Limit
#
AllowOverride All
Перезапустите службу Apache (httpd).
Никаких изменений не требуется в config.php
или где-нибудь еще.
.htaccess код:
RewriteEngine on
RewriteCond $1 !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]
Пожалуйста, попробуйте следующее:
RewriteEngine on
RewriteBase /ci/
RewriteCond $1 !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [L,QSA]
Затем в config.php
:
$config['index_page'] = "";
$config['uri_protocol'] = "REQUEST_URI";
Пожалуйста, убедитесь, что ваш .htaccess
находится в том же каталоге, что и ваш index.php
,