http://www.website.com 和 http://website.com 有啥区别?
Posted
技术标签:
【中文标题】http://www.website.com 和 http://website.com 有啥区别?【英文标题】:what is the difference between http://www.website.com and http://website.com?http://www.website.com 和 http://website.com 有什么区别? 【发布时间】:2015-02-09 22:40:52 【问题描述】:考虑一下我已经创建了一个网站并有一个这样的网络目录......
1.index.php
2.ajax.php
在 index.php 编码中..我使用
<html>
....
<base href="http://website.com">
....
....
<script> <!-- using jquery -->
....
$.ajax(
url:'ajax.php',
type:'POST',
data: 'variable': value ,
success: function(res)
....
....
);
....
</script>
当我运行上面的代码时,它工作正常......但是当我在基本元素 href 属性中添加“www”时,就像这样......
<base href="http://www.website.com">
它为什么不工作?,它在javascript中显示这样的错误..
跨域请求被阻止:同源策略不允许读取位于http://example.com/ajax.php 的远程资源。这可以通过将资源移动到同一域或启用 CORS 来解决。
现在我有问题了吗?
真正的问题是什么?
我应该怎么做才能让两个基本元素代码都运行?
什么是 CORS?
如果我启用 CORS,其他网站的任何人都可以访问我的网站吗?
如果有人可以帮助我,我将不胜感激,在此先感谢...
【问题讨论】:
它们是两个不同的域。 一个有 www 子域,因此从外观上看被视为跨域。 【参考方案1】:
http://www.website.com
和http://website.com
有什么区别?
它们有不同的主机名,并且(技术上)是不同的网站。他们可以托管不同的内容,但可能不会。
真正的问题是什么?
不同的主机名是不同的来源。浏览器不允许在一个来源的页面中运行的 JavaScript 从另一个来源读取内容,除非获得 CORS 的许可。
我应该怎么做才能使两个基本元素代码都运行?
选择两个主机名之一作为规范。配置服务器,使非规范服务器发出 301 HTTP 重定向到规范服务器。
当您使用它时,请停止使用<base>
。这比它的价值要痛苦得多,几乎所有的好处都可以通过使用与服务器根目录相关的 URL(即以 /
字符开头的 URL)来实现。
什么是 CORS?
将服务器配置为发送 HTTP 标头,允许浏览器与其他网站共享您网站的数据。
请参阅MDN 了解更多信息。
如果我启用了 CORS,其他网站的任何人都可以访问我的网站吗?
您可以指定全局访问权限或将其限制为特定来源。
【讨论】:
【参考方案2】:基本上,“www”。是一个子域,在技术上与根目录不同。您可以在子域“www.”上运行一个完全不同的网站,尽管大多数托管服务提供商都会自动设置其 DNS 以重定向子域“www.”。到根文件夹(或相反)。您可以使用具有以下内容的 .htaccess 文件自己执行此操作:
RewriteEngine On
RewriteBase /
RewriteCond %HTTP_HOST ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
【讨论】:
以上是关于http://www.website.com 和 http://website.com 有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章