Я разработал проект, который использует 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. Но я получаю ошибку как неизвестную команду.
Проверьте, включен ли перезаписываемый движок.
Если нет, включите перезагрузку и перезапустите сервер.
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]
Попробуйте следующее:
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
.
example.com/your-controller
?
.htaccess
? Это поможет нам помочь вам./system.*
?