与www的Codeigniter基本网址问题

时间:2016-01-01 04:26:00

标签: php codeigniter routing base-url

我已将基本网址声明为$ 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'因此不允许访问。

3 个答案:

答案 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]
  
    

同时确保已加载网址助手。