在php中设置base_url()。什么应该是php的任何框架中的base_url()?

时间:2017-04-12 16:29:24

标签: php ajax web cors base-url

我的问题不是关注如何在任何PHP框架中设置基本URL的方法。而我真正想知道的是base_url()应该是什么 从以下两个选项

假设我选择了选项1,即 http://example.com 我的网站的所有流量来自 http://www.example.com 将面临以下问题,同样如果我选择来自其他otpion网址的选项2流量将面临以下问题。

问题

由于CORS(跨源请求共享)而被浏览器阻止的Ajax。因为谷歌从两个不同的网站处理www和非www请求。 如果可以提供任何帮助,我的ajax代码如下

$.ajax({
url: '<?php echo base_url(); ?>/Index/perform_task',
type:'POST',
data: {
    name: $("#name_field").val(),
    task: $("#task_field").val(),

},
success:function(data){
    if (data == 'task_completed'){
            window.location.href = "<?php echo base_url() ?>";
        }
        else{
            $('#task_error').html('Some Error occured.')        
        }
}

});

2 个答案:

答案 0 :(得分:3)

任何版本都有好处

简短的回答是“否”。 www或非www网站没有任何优势,因为要选择一个网站还是另一个网站取决于个人喜好。影响SEO的主要因素是您的一致性,特别是您是否一直在网站的网址中添加或删除www。为了从这一小事情中受益,您需要选择一个选项并坚持使用该选项。简而言之,当您将网站的网址引入知名的搜索引擎后,请勿更改它。

否则,他们会将这两个选项(www.site.com和site.com)视为两个不同的网站,并禁止它们将页面,关键字和内容加倍。

www和非www站点URL之间的唯一区别只是技术上的区别。当您的网站包含“ www。”时,它是在使用其他域时调整为DNS并限制Cookie的主机名。同时,如果您的网站没有“ www。”,那么它就没有这样的技术特权

那你该怎么办? 只需使用您喜欢的一种版本,并将所有来自其他版本的请求路由到您使用的那个版本,就不再更改它。

答案 1 :(得分:1)

正如@junkfoodjunkie所说,你应该只使用一个域并重定向另一个域。但是,如果出于任何原因,您必须保留这两个域,那么您应该在当前域中调用您的ajax脚本。

然后,您的base_url()函数应返回当前域。例如:

function base_url(){
    return 'http'.(isset($_SERVER['HTTPS'])?'s':'').'://'.$_SERVER['SERVER_NAME'];
}