http强制301到https,今天试了很多规则,总在打开网站时出错,解决问题的过程中百度到很多内容,与大家分享,希望对你有所帮助!
无论是nginx,还是apache都各自有优势,对于我们普通用户而言基本上也没有多大的区别。在虚拟主机环境中,基本上都是apache环境。apache与nginx两者区别之一就是伪静态的设置,前者则是在网站根目录设置文件,无论是伪静态,还是301跳转,甚至是防盗链和禁止某个ip的访问都可以很简单的设置。
关于.htaccess文件的设置和实际应用是相当广泛的,很多功能都可以利用这个小小的文件实现,只不过我们普通用户使用的并不多而已,比如我们使用最多的无非就是www或者非www 301跳转,顶多加上防盗链等功能,在这篇文章中,老蒋准备陆续整理.htaccess文件的常见的用法。
第一、强制www域名301跳转
rewriteengine on rewritecond %{http_host} ^itbulu\.com [nc] rewriterule ^(.*)$ https://www.itbulu.com/$1 [l,r=301,nc]
我们将域名替换成自己的域名即可实现非www跳转到www域名。
第二、强制非www域名301跳转
rewriteengine on rewritecond %{http_host} !^itbulu.com$ [nc] rewriterule ^(.*)$ http://itbulu.com/$1 [l,r=301]
这里我们可以强制如果访问www域名前缀,会跳转到非www域名。
第三、强制https跳转地址(两个方法)
rewriteengine on rewritebase / rewritecond %{server_port} !^443$ rewriterule ^.*$ https://%{server_name}%{request_uri} [l,r=301]
rewriteengine on rewritecond %{server_port} 80 rewriterule ^(.*)$ https://www.itbulu.com/$1 [r,l]
如何我们网站采用ssl证书,则一般需要强制跳转https路径,这里需要添加强制80端口的跳转。
第四、阻止无用的蜘蛛爬取
rewriteengine on rewritecond %{http_user_agent} (^$|feeddemon|jikespider|indy library|alexa toolbar|asktbfxtv|ahrefsbot|crawldaddy|coolpadwebkit|java|feedly|universalfeedparser|apachebench|microsoft url control|swiftbot|zmeu|obot|jaunty|python-urllib|lightdeckreports bot|yyspider|digext|httpclient|mj12bot|heritrix|easouspider|ezooms) [nc] rewriterule ^(.*)$ - [f]
第五、强制/斜杠结尾路径
rewritecond %{request_uri} / [^\.] $ rewriterule ^(. [^/])$ %{request_uri}/ [r=301,l]
第六、取消/斜杠结尾
rewritecond %{request_filename} !-d rewriterule ^(.*)/$ /$1 [r=301,l]
第七、将a页面301跳转到b页面
redirect 301 /a.html https://www.itbulu.com/b.html
第八、阻止某个ip访问
order deny,allow allow from all deny from xxx.xxx.xxx.xxx
第九、禁止图片盗链
rewriteengine on rewritecond %{http_referer} !^$ rewritecond %{http_referer} !^http(s)?://(. \.)?itbulu.com [nc] rewriterule \.(jpg|jpeg|png|gif|bmp)$ - [nc,f,l]
第十、禁止被其他网页套用
setenvif request_uri "/starry-night" allow_framing=true header set x-frame-options sameorigin env=!allow_framing
总结,以上是平时常用和不常用的.htaccess伪静态、301、防盗链以及等设置功能。如果需要更多强大的htaccess功能则需要阅读官方文档,这10个用途仅仅是很小的部分。