codeigniter
Базовый URL в Codeigniter
Поиск…
Настройка базового URL-кода в Codeigniter
Вам нужно будет установить базовый URL-адрес в application/config/config.php
Если он не установлен, CodeIgniter попытается угадать протокол и путь к вашей установке, но из-за проблем с безопасностью имя хоста будет установлено в $_SERVER['SERVER_ADDR']
если оно доступно, или localhost в противном случае. Механизм автоматического обнаружения существует только для удобства во время разработки и НЕ ДОЛЖЕН использоваться в производстве!
$config['base_url'] = '';
Он должен быть подан как
$config['base_url'] = 'http://localhost/projectname/';
$config['base_url'] = 'http://www.example.com/';
Всегда полезно использовать /
в конце base_url
Когда вы не устанавливаете свой базовый URL-адрес, вы можете столкнуться с некоторыми ошибками, когда вы не можете загружать элементы CSS, изображений и других объектов. Кроме того, у вас могут возникнуть проблемы с отправкой форм, поскольку некоторые пользователи сталкиваются с ними.
Обновить
Если вы не хотите устанавливать свой базовый URL, это будет другим способом.
Создайте новый основной файл в application/core/MY_Config.php
И вставьте этот код
<?php
class MY_Config extends CI_Config {
public function __construct() {
$this->config =& get_config();
log_message('debug', "Config Class Initialized");
// Set the base_url automatically if none was provided
if ($this->config['base_url'] == '')
{
if (isset($_SERVER['HTTP_HOST']))
{
$base_url = isset($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) !== 'off' ? 'https' : 'http';
$base_url .= '://'. $_SERVER['HTTP_HOST'];
$base_url .= str_replace(basename($_SERVER['SCRIPT_NAME']), '', $_SERVER['SCRIPT_NAME']);
}
else
{
$base_url = 'http://localhost/';
}
$this->set_item('base_url', $base_url);
}
}
}
Что-то еще О base_url
Что произойдет, если я не установлю base_url
?
Вы не получите ошибку Impotency, чтобы установить это и продолжить. Вы можете продолжить без настройки, но вы должны знать о вводе заголовка HTTP
Если бы я не установил, что будет отображаться?
Вы получите http://[::1]/
вместо фактического URL.
Что это значит http://[::1]/
??
Это временный URL, который устанавливается CI по умолчанию. Это укажет корень вашего документа.
::1
- Адрес сервера (localhost) Подробнее об этом
Как правильно установить base_url()
??
Базовый URL должен всегда указывать на корень вашей папки проекта. (внешняя папка приложения)
$config['base_url'] = 'http://localhost/path/to/project'; # If localhost
$config['base_url'] = 'http://stackoverflow.com/'; # If live
$config['base_url'] = 'http://stackoverflow.com/documentation'; # If live & inside subdomain (assume documentation is subfolder/subdomain)
Как использовать base_url()
??
Наиболее часто используется поиск правильного пути к вашим js или css-файлам.
<link rel="stylesheet" href="<?php echo base_url('styles/style.css');?>" />
<script src="<?php echo base_url('vendor/jquery/jquery.min.js');?>"></script>
Добавление кода выше в вашем представлении приведет к созданию HTML как показано ниже:
<link rel="stylesheet" href="http://localhost/path/to/project/styles/style.css" />
<script src="http://localhost/path/to/project/vendor/jquery/jquery.min.js"></script>
связи
Умный способ настройки base_url
Следующие строки кода - более разумный способ настройки base_url
в codeigniter:
$config['base_url'] = ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == "on") ? "https" : "http");
$config['base_url'] .= "://".$_SERVER['HTTP_HOST'];
$config['base_url'] .= str_replace(basename($_SERVER['SCRIPT_NAME']),"",$_SERVER['SCRIPT_NAME']);
Рекомендуем
$config['base_url'] = 'https://stackoverflow.com/';
Потому что все знают пространство для хостинга. Поэтому, если вы настроили это, вы можете предотвратить инъекцию на свой сайт / хост .