Кодовая ссылка на базовый URL проблема с www

Я объявил базовый URL-адрес как $ config [‘base_url’] = ‘http://example.com/«;.

Но проблема в том, если кто-то попытается получить доступ к моему веб-сайту с помощьюhttp://www.example.com/«; Функции css / js не работают.

Если я изменю базовый URL на ‘http://www.example.com/‘, пользователи не могут получить доступ с’http://example.com/».

Я использую codeigniter 3.0.3. Это проблема веб-сайта, который уже находится в сети.

CSS — assets / plugins / bootstrap / css / bootstrap.min.css «/>

JS — «>

. Кстати, запрос AJAX также не удалось. Когда я пытаюсь получить доступ к функции AJAX, на консоли отображается следующая ошибка —

XMLHttpRequest не может загрузить http://www.example.com/Dynamic/home/normal/4. В запрошенном ресурсе отсутствует заголовок «Access-Control-Allow-Origin». Происхождениеhttp://example.comПоэтому не допускается доступ.

ошибка css

Шрифт из происхожденияhttp://www.example.com‘заблокирован от загрузки политикой общего доступа к ресурсам: заголовок «Access-Control-Allow-Origin» отсутствует в запрашиваемом ресурсе. Происхождениеhttp://example.comПоэтому не допускается доступ.

0

Решение

Я думаю, что следующий блок кода показывает лучший способ настроить 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']);

И я твердо верю, что это решит вашу проблему. Спасибо.

3

Другие решения

Измените свою базовую ссылку с

$ config [‘base_url’] = ‘http://example.com/«;

в

$ config [‘base_url’] = ‘http://www.example.com/«;

Причина: URL-адрес веб-сайта с www и без www считается другим, поэтому выдает ошибку

Политика совместного использования ресурсов между источниками: нет «Access-Control-Allow-Origin»

Лучшим способом является добавление кода в htaccess для преобразования не www в www.

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ http://www\.%{HTTP_HOST}/$1 [L,R=301]

Надеюсь, что это объяснить причину изменений …

0

Определите baseUrl следующим образом

$config['base_url'] = 'stackoverflow.com/';

а также .htaccess должно быть

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

А также убедитесь, что URL-помощник загружен.

0