apache的斜杠问题,apache斜杠问题


http://blog.csdn.net/menghuanhongye1987/article/details/11905331

 

APACHE默认情况下,网页目录的最后必须加入斜杠“/",比如

 

可以浏览http://example-com/abc/,但是不能浏览http://example-com/abc,就是说浏览目录时最后必须加/改一下设置文件,在httpd.conf里,找到

 

UseCanonicalName On

 

把On修改为Off就可:

UseCanonicalName Off

就可以了

 

当然也可用mod_rewrite来解决,首先要确认你的apache里已经安装了这module,且你的httpd.conf里起用了rewrite,才可以调用.htaccess

 

# This controls which options the .htaccessfiles in directories can

# override. Can also be "All", orany combination of "Options", "FileInfo",

# "AuthConfig", and "Limit"

#

   AllowOverride all

 

当向服务器请求的是

http://example-com /faq而不是http://example-com/faq/时

,服务器就会去查找一个叫faq的文件,而实际上faq是目录,所以就会报错,无法自动跳转。

 

解决方法:

 

编辑用户网站主目录下的.htaccess文件:

在DocumentRoot下,建立.htaccess文件,写进如下内容:

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} -d

RewriteRule ^(.+[^/])$ http://example-com/$1/[R=301]

 

这样,服务器就会自动添加后缀斜杠,实现自动跳转。

 

Apache中ErrorDocument文件的设置问题

在httpd.conf中设置 ErrorDocument 404 /missing.html

但其中的内容死活不能用,原来是IE的一个BUG,错误文件需要大于512字节才能正常被显示。

教训:

1.手册是好东西,一定要细心去看。

2.很多情况下应该换个角度去思考问题。在本例中,把IE中的 "Show Friendly HTTP Error Messages"(ie里设置“显示友好的http错误信息)打开后,就一切迎刃而解了。

 

使访问http的转向到https

 

RewriteEngine On

# For webmail

RewriteCond %{HTTP_HOST}^webmail\.lwkp\.com\.cn

RewriteCond %{HTTP_HOST} !^$

RewriteCond %{SERVER_PORT} ^80$

RewriteRule (.*) https:// example-com [L,R]

 

# For IP

RewriteCond %{SERVER_PORT} ^80$

RewriteCond %{HTTP_HOST}^xx\.xx\.xxx9\.[1-9]*$

RewriteRule (.*) https://%{HTTP_HOST}/

 

 

 

 

 

在传统意义上说,网址末尾是没有反斜杠的。有没有反斜杠的意义在于该url是指向一个文件还是一个目录,

 

例如:

 

http:// example-com /fxg 指向的是网站根目录下一个名为fxg的文件

 

http:// example-com /fxg/ 指向的是网站根目录下一个名为fxg的目录

 

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

流量很大,那么给url末尾加上反斜杠便能较大的减轻服务器的负担了。

 

当然给网址末尾加上反斜杠还有其他的好处:

 

1.在seo方面考虑,习惯性的给自己网站的网址末尾加上反斜杠能避免重复内容。正如域名中是否带”www”的问题,url末尾是否有反斜杠也会造成重复内容的问题,这对于网站的seo无疑是不利的,要知道,重复内容绝对是seo的大忌。

 

2.因为服务器对url不能正确解析,有可能会出现404错误,习惯地给网址末尾加上反斜杠则可以避免这种情况。

 

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

 

相关内容

    暂无相关文章