apache — удаление index.php из URL в CodeIgniter на Mandriva

Я разработал проект, который использует 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. Но я получаю ошибку как неизвестную команду.

0

Решение

Проверьте, не перезаписан ли двигатель включен.

Если нет, включите механизм перезаписи и перезапустите сервер.

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]
2

Другие решения

Пожалуйста, попробуйте следующее:

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,

1

По вопросам рекламы [email protected]