我已将基本网址声明为$ config [' base_url'] =' http://example.com/';。
但问题是,如果有人尝试使用' http://www.example.com/&#39 ;; ,css / js函数不起作用。
如果我将基本网址更改为' 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。 No' Access-Control-Allow-Origin'标头出现在请求的资源上。起源' http://example.com'因此不允许访问。
css错误
来自原点的字体' http://www.example.com'已被跨源资源共享策略阻止加载:No' Access-Control-Allow-Origin'标头出现在请求的资源上。起源' http://example.com'因此不允许访问。
答案 0 :(得分:3)
我认为以下代码块显示了在Codeigniter中配置base_url的最佳方法:
$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']);
我坚信这会解决你的问题。谢谢。
答案 1 :(得分:0)
从
更改基本网址 $ config ['base_url'] ='http://example.com/';
到
$ config ['base_url'] ='http://www.example.com/';
原因: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]
希望这能解释改变的原因......
答案 2 :(得分:0)
像这样定义baseUrl
$config['base_url'] = 'stackoverflow.com/';
和.htaccess
应为
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
同时确保已加载网址助手。