Codeigniter: Base_url, похоже, не работает

Я разработал простой сайт, который извлекает твиты из общедоступной хронологии Twitter, кэширует их в течение 60 секунд и так далее. Недавно я переместил хосты из Hostgator в Mediatemple, и мой сайт ранее работал нормально на Hostgator.

Мое приложение не использует соединение с базой данных, равно как и не использует ни одну форму плоской базы данных. Твиты кэшируются в XML-файле, хранящемся в корневом каталоге, а не в том, что большая часть этого важна.

Приветствующий URL-адрес включен, как видно ниже (это моя строка помощников от autoload.php): $autoload['helper'] = array('url');

Я также удалил свой файл index.php из URL-адреса, используя директивы .htaccess, и еще раз это ранее работало над Hostgator (см. Мой код .htaccess ниже):

 RewriteEngine On RewriteRule ^(application) - [F,L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule .* index.php/$0 [PT,L] 

В моем файле просмотра home.php, который находится в папке views внутри приложения, я использую функцию base_url (), которая ранее работала над Hostgator внутри моих файлов просмотра и добавляла в нее базовое значение href: <base href="<?php echo base_url(); ?>" />

Вот как выглядит значение base_url в файле config.php:

 $config['base_url'] = "http://threetune.com/"; 

Хотя то, что, похоже, происходит, это то, что base_url вообще не видно. Похоже, что он не повторяет значение base_url, поскольку по какой-то причине он кажется пустым.

Что делает вещи более странными, так это то, что у меня есть ссылка в другом файле вида с именем «fetch.php», и по какой-то причине он, похоже, отключает значение (фильтрация XSS отключена): <a href="threetune/show"><img src="assets/images/cookie.jpg" /></a> Часть threetune / show не видна, и я вижу только пустое значение href, подобное <a href=""><img src="assets/images/cookie.jpg" /></a>

Может ли кто-нибудь увидеть что-то неправильное, что я, возможно, сделал, какое-то ограничение сервера Mediatemple или флаг PHP.ini, который нужно установить? Спасибо, и я надеюсь, что я достаточно описателен.

Solutions Collecting From Web of "Codeigniter: Base_url, похоже, не работает"

Я тоже на сетке. После повторного чтения вашего вопроса и проведения небольшого тестирования (он работает для меня), я думаю, что происходит, вы забыли загрузить url помощника.

Если вы хотите, чтобы базовый URL-адрес сайтов был доступен вам в приложении через base_url() , вам нужно сначала загрузить помощника url . Либо через config / autoload.php, либо загрузите его вручную в свой контроллер.

В противном случае вы можете использовать config / constants.php для определения постоянных переменных:

 define('BASE_URL', 'http://site.com'); define('BASE_PATH', '/path/to/CI/folder'); 

Просто быстрая заметка о base_url – может быть хорошей идеей динамически установить эту переменную, так как это позволит вашему сайту поддерживать несколько доменов.

 (ie $config['base_url'] = 'http://'.$_SERVER['HTTP_HOST']) 

http://thecodeabode.blogspot.com/2010/10/codeigniter-supporting-multiple-domains.html немного расширяет это, предоставляя сценарии, учитывающие протокол и порт.