Поиск…


Настройка базового 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>

связи

  1. Помощник URL

Умный способ настройки 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/';

Потому что все знают пространство для хостинга. Поэтому, если вы настроили это, вы можете предотвратить инъекцию на свой сайт / хост .



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow