Удаление index.php из URL в CodeIgniter на Mandriva

0

Я разработал проект, который использует 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.

.htaccess путь

/srv/www/html/ci/

Страница дает:

404, и объект не найден!

Путь файловой системы к моему проекту

/srv/www/html/ci/application/controllers/ 

и в браузере:

localhost/ci/branch 

Проект работает, если я добавляю index.php как

localhost/ci/index.php/branch

Имеет ли какое-либо отношение с конфигурацией http-сервера? Нужно ли устанавливать какой-либо пакет. Кроме того, я попробовал несколько команд для механизма перезаписи apache. Но я получаю ошибку как неизвестную команду.

  • 1
    Пожалуйста, не могли бы вы поделиться текущим содержанием вашего файла .htaccess ? Это поможет нам помочь вам.
  • 0
    Где хранятся ваши файлы? В корне документа? И зачем вам проверять /system.* ?
Показать ещё 2 комментария
Теги:
codeigniter
.htaccess
httpd.conf

2 ответа

2
Лучший ответ

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

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

sudo a2enmod rewrite
sudo service apache2 restart

Идти к

/etc/httpd/conf/httpd.conf - for Mandriva
/etc/apache2/apache2.conf  - for Ubuntu

Изменить AllowOverride None to 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]
1

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

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.

  • 0
    Это не работает.
  • 0
    Пожалуйста, не могли бы вы поделиться, какие ошибки вы получаете? Что происходит, когда вы пытаетесь получить доступ к example.com/your-controller ?
Показать ещё 11 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню