Ошибка CodeIgniter с base_url в форме

Я звонил base_url() в виде действия в виде в моей локальной машине. Но это дает URL как http://::1/codeigniter/ вместо http://localhost/codeigniter, Это тот же случай с site_url() также.

Это проблема с .htaccess файл или я должен сделать какие-либо настройки в config.php?

Ниже мой .htaccess файл:

DirectoryIndex index.php
RewriteEngine on

RewriteCond $1 !^(index\.php|(.*)\.swf|forums|images|css|downloads|jquery|js|robots\.txt|favicon\.ico)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./index.php?$1 [L,QSA]

Я использую версию CodeIgniter 3.0.

2 ответа

Решение

Если вы оставите это поле пустым, фреймворк попытается автоматически определить его, начиная с версии 2.0.0. Попробуйте установить это значение в конфигурации: $config['base_url'] = 'http://localhost/codeigniter/' и я думаю, что все должно работать.

Редактировать: с косой чертой.

Если вы не хотите менять $config['base_url'] при изменении сервера или перемещении проекта на работающий сервер с локальной машины попробуйте следующее:

$root = "http://".$_SERVER['HTTP_HOST'];
$root .= str_replace(basename($_SERVER['SCRIPT_NAME']),"",$_SERVER['SCRIPT_NAME']);
$config['base_url']    = "$root";

Это может избежать всех проблем с $config['base_url'],

Другие вопросы по тегам