it-swarm.com.ru

Как правильно установить базовый URL кодигнитора?

когда у меня был мой сайт в среде разработки - это был URL: testurl.com

Теперь на производственном сервере адрес моего приложения codeigniter должен быть someurl.com/mysite/

Я переместил его туда, и каждый раз, когда я пытаюсь запустить какую-то функцию, например/home/test - она ​​попадает в someurl.com/home/test - что НЕПРАВИЛЬНО.

Это должно быть someurl.com/mysite/home/test - Как это исправить? Я сделал набор 

$config['base_url'] = someurl.com/mysite/
30
pawel

Базовый URL должен быть абсолютным, включая протокол:

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

При использовании URL-помощника base_url() выведет указанную выше строку.

Передача аргументов в base_url() или site_url() приведет к следующему (при условии, что $config['index_page'] = "index.php";

echo base_url('assets/stylesheet.css'); // http://somesite.com/somedir/assets/stylesheet.css
echo site_url('mycontroller/mymethod'); // http://somesite.com/somedir/index.php/mycontroller/mymethod
55
Brendan

Проверьте 

config> config

структура файла codeigniter

замещать 

$config['base_url'] = "your Website url";

с

$config['base_url']  =  "http://".$_SERVER['HTTP_Host'];

$config['base_url'] .= preg_replace('@/[email protected]', '', dirname($_SERVER['SCRIPT_NAME'])).'/';
19
Amranur Rahman

Ну, это очень интересно, вот быстрый и рабочий код:

index.php

/**
 * Define APP_URL Dynamically
 * Write this at the bottom of index.php
 *
 * Automatic base url
 */
define('APP_URL', ($_SERVER['SERVER_PORT'] == 443 ? 'https' : 'http') . "://{$_SERVER['SERVER_NAME']}".str_replace(basename($_SERVER['SCRIPT_NAME']),"",$_SERVER['SCRIPT_NAME'])); 

config.php

/*
|--------------------------------------------------------------------------
| Base Site URL
|--------------------------------------------------------------------------
|
| URL to your CodeIgniter root. Typically this will be your base URL,
| WITH a trailing slash:
|
|   http://example.com/
|
| If this is not set then CodeIgniter will guess the protocol, domain and
| path to your installation.
|
*/
$config['base_url'] = APP_URL;

CodeIgniter ROCKS !!! :)

7
Neeraj Singh

Если вы оставите это поле пустым, фреймворк попытается autodetect it начиная с версии 2.0.0.

Но не в 3.0.0, смотрите здесь: config.php

4
complex857

это для сервера и живого сайта я подаю заявку на hostinger.com и он работает нормально 

1-й: $config['base_url'] = 'http://yoursitename.com'; (в confing.php)

2): src="<?=base_url()?>assest/js/wow.min.js" (в файле просмотра)

3): href="<?php echo base_url()?>index.php/Mycontroller/Method" (для ссылки или вызова метода)

1
Pradipsinh Rajput

После объявления базового URL-адреса в config.php, (обратите внимание, если вы все еще получаете ту же ошибку, проверьте autoload.php)

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

Проверьте "автозагрузку"

Структура файла CodeIgniter:

\application\config\autoload.php

И включить при автозагрузке:

$autoload['helper'] = array(**'url',** 'file');

И это работает.

1
Vimel Raja

приложение> config> config.php

найдите $ config ['base_url'] и разместите ваш сайт как "//example.com" (пропустить протокол) 

 $config['base_url'] = "//someurl.com/";

Это работает для меня.

0
Verde

Я думаю, что CodeIgniter 3 рекомендует устанавливать $config['base_url'] в полный URL-адрес вручную, чтобы избежать внедрения заголовка HTTP .

Если вас это не беспокоит, вы можете просто добавить следующие строки в свой

application/config/config.php

defined('BASE_URL') OR define('BASE_URL', (is_https() ? 'https://' : 'http://') . $_SERVER['HTTP_Host'] . dirname($_SERVER['SCRIPT_NAME']) . '/');
$config['base_url'] = BASE_URL;

Таким образом, у вас также есть константа BASE_URL, доступная во всем коде вашего проекта (включая представления), и вам не нужно использовать функции:

config_item('base_url') //returns BASE_URL
$this->config->item('base_url'); //returns BASE_URL
0
Marco Demaio

Вы можете использовать путь к базовому URL-адресу по умолчанию для любого сервера Это необходимо использовать в папке config> файлы config.php Заменить вас:

$config['base_url'] = 'index.php';

по этому коду: $config['base_url'] = "http://".$_SERVER['HTTP_Host']; $config['base_url'] .= preg_replace('@/[email protected]','',dirname($_SERVER['SCRIPT_NAME'])).'/';

это автоматически находит вашу папку с любого сервера

0
Saiful Islam