最近浏览有关互联网的资讯多了,发现了一个不少人提到的问题,为什么网址结尾会加上反斜杠呢?又为什么我们在浏览器地址栏上打出一个网址(如我的主页piaoyun.cc),按回车后地址末尾会自动加上一个反斜杠(部分浏览器如chorme会自动隐藏网址末尾的反斜杠)。很诡异是吧!好了,进入正题,推广一下小知识。

在传统意义上说,网址末尾是没有反斜杠的。有没有反斜杠的意义在于该url是指向一个文件还是一个目录,例如:
http://piaoyun.cc/piaoyun 指向的是网站根目录下一个名为piaoyun的文件
http://piaoyun.cc/piaoyun/ 指向的是网站根目录下一个名为piaoyun的目录

于是在网址末尾加了反斜杠是能加快网站载入,因为网址末尾加了反斜杠会直接告知浏览器现在指向的是一个目录,浏览器就能直接读取该目录下如index或home等默认文件。而没有加上反斜杠时浏览器首先会尝试读取根目录下的一个文件,如果没有该文件再查找一个与该文件同名的目录,最后才读取目录下的默认文件。这样一来加上反斜杠就会加快网站加载速度。对于网站所在的服务器,网址没有加上反斜杠会给服务器增加一个查找是否有同名文件的过程,这明显会增加服务器的负担,当然这个影响并不会很大,但如果你的网站的直接流量很大,那么给url末尾加上反斜杠便能较大的减轻服务器的负担了。

当然给网址末尾加上反斜杠还有其他的好处:1.在seo方面考虑,习惯性的给自己网站的网址末尾加上反斜杠能避免重复内容。正如域名中是否带”www”的问题,url末尾是否有反斜杠也会造成重复内容的问题,这对于网站的seo无疑是不利的,要知道,重复内容绝对是seo的大忌。
2.因为服务器对url不能正确解析,有可能会出现404错误,习惯地给网址末尾加上反斜杠则可以避免这种情况。

总的来说给网址末尾加上反斜杠对对网站建设者是有很大好处的,这可以说是网站建设者应该养成的一个好习惯。当然,在交换友情链接时别忘了提醒一下对方,记得为你的网站url末尾加上反斜杠了。

为什么很多网站都是采用在网址的结尾后加上反斜杠,比如百度 sina都是这样的处理方法。为什么要给网址结尾加上反斜杠,这样做对于用户体验,以及速度优化有什么好处呢。

网站使用反斜杠和不使用反斜杠的区别不加斜杠指向的是网站根目录下一个名为的文件,加了斜杠指向的是网站根目录下一个名为的目录,也就是目录与文件的区别

 

首页网站使用反斜杠的好处使用斜杠能加快网站载入,原因是因为网址末尾加了反斜杠会直接告知浏览器现在指向的是一个目录,目录的话会直接读取index。或者home等默认文件。没有加上反斜杠时浏览器首先会尝试读取根目录下的一个文件,如果没有该文件再查找一个与该文件同名的目录,最后才读取目录下的默认文件。网址没有加上反斜杠会给服务器增加一个查找是否有同名文件的过程.

seo方面考虑
网站只存在带斜杠的模式,避免网站权重流失(和不带www和带www的概念相同)。同时有另外一种理解:有加了是一个文件夹 默认情况下应该是目录的权重大于网站页面权重

最后附上Apache开启自动将不同的url以301重定向至一个标准的url上的.htaccess代码(前提是你的服务器开启了mod_rewrite,至于IIS,就没有方便的方法去实现这个功能了):

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ http://piaoyun.cc/$1/ [L,R=301]

说明:
* RewriteCond %{REQUEST_FILENAME} !-f : 指定操作仅针对目录,对指向文件的url不进行rewrite操作;
* RewriteCond %{REQUEST_URI} !(.*)/$ :判断url是否以斜杠“/”结尾;
* RewriteRule ^(.*)$ http://piaoyun.cc/$1/ [L,R=301] : 自动将符合上述条件的url以301跳转重定向至以斜杠结尾的版本,比如说将“http://piaoyun.cc/piaoyun”重定向至 “http://piaoyun.cc/piaoyun/”,其中“L”指该行为规则的最后一行,而“R=301”则指明采用301 Redirect。当然,您在使用时应将“http://piaoyun.cc/”替换成自己网站的url。

当然我的网站并没有对于该使用目录的时候使用目录,当时是处于扁平状网站布局考虑而有所失误。而现在想要修改对于网站结构变动较大而不是很现实所以还是以后考虑进一步修改。

暂无评论