Я объявил базовый 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 - ">

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

.

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

css error

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

Ответы (3)

Измените свой базовый url с

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

к

$config['base_url'] = 'http://www.example.com/';

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

.

Политика кросс-оригинального совместного использования ресурсов: Отсутствует 'Access-Control-Allow-Origin'

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

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

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

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

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

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

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

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

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

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

2022 WebDevInsider