.htaccess设置301跳转及常用技巧整理

liftword2个月前 (03-26)技术文章19

在虚拟主机环境中,基本上都是Apache环境。Apache的伪静态的设置,都是在网站根目录设置.htaccess文件,在.htaccess文件中无论是伪静态,

还是301跳转,甚至是防盗链和禁止某个IP的访问都可以很简单的设置。

关于.htaccess文件的设置和实际应用是相当广泛的,很多功能都可以利用这个小小的文件实现,只不过我们普通用户使用的并不多而已,比如我们常用的301跳转就医带WWW的二级域名跳向不带WWW的顶级域名,

或者一防盗链,或是禁止IP等。这篇文章我们就介绍几种,.htaccess文件的常见的用法。

强制www域名301跳转

直接将域名替换成自己的域名即可实现非WWW跳转到WWW域名。

RewriteEngine on
RewriteCond %{HTTP_HOST} ^pazzn\.com [NC]
RewriteRule ^(.*)$ https://www.AAA.com/$1 [L,R=301,NC]

强制非WWW域名301跳转

如果访问www域名前缀,会跳转到非www域名,域名替换成自己的

RewriteEngine On
RewriteCond %{HTTP_HOST} !^pazzn.com$ [NC]
RewriteRule ^(.*)$ http://AAA.com/$1 [L,R=301]

强制https跳转地址

网站如果采用SSL证书,则一般需要强制跳转https路径,这里需要添加强制80端口的跳转,服务器也要开启443的端口。

RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.AAA.com/$1 [R,L]

阻止无用的蜘蛛爬取

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]

将A页面301跳转到B页面

Redirect 301 /a.html https://www.AAA.com/b.html

全部重定向到B网站

RewriteEngine on
RewriteRule ^(.*)$ http://www.AAA.com/$1 [R=301,L]

阻止某个IP访问

Order deny,allow
Allow from all
Deny from 127.0.0.1

强制/斜杠结尾路径

RewriteCond %{REQUEST_URI} /+[^\.]+$
RewriteRule ^(.+[^/])$ %{REQUEST_URI}/ [R=301,L]

取消/斜杠结尾

RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [R=301,L]

禁止被其他网页套用

SetEnvIf Request_URI "/starry-night" allow_framing=true
Header set X-Frame-Options SAMEORIGIN env=!allow_framing

禁止图片盗链

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(.+\.)?AAA.com [NC]
RewriteRule \.(jpg|jpeg|png|gif|bmp)$ - [NC,F,L]

相关文章

干货|Python大佬手把手带你破解哔哩哔哩网滑动验证(上篇)

/1 前言/ 有爬虫经验的各位小伙伴都知道,正常我们需要登录才能获取信息的网站,是比较难爬的。原因就是在于,现在各大网站为了反爬,与爬虫机制斗智斗勇,一般的都加入了图片验证码、滑动验证码之类的干扰,让...

Python合集之Python跳转语句(一)

在上一节的合集中,我们了解了Python循环嵌套语句的相关知识,本节我们将进一步了解一下Python跳转语句中的break的相关知识。 当循环条件一直满足时,程序会一直执行下去,如果希望在中间离开循环...

python笔记八:跳转语句continue

跳转语句:break continue'''cbreak 跳出循环。continue语句:不满足条件跳过(跳回循环体)'''#例:求1---100以内不是5的倍数的和# sum_namber=0# f...

Markdown + 文档管理 + 静态网页生成,集大成的 Markdown 应用:MWeb

上周给大家推荐了 Typora,作为一款纯粹的 Markdown 应用来说,它的各种功能和细节可以说已经相当极致,然而,Ulysses用户表示:我们想要的不仅仅是 Markdown。是的,Markdo...

Flet 手机app界面设计,导航和路由,在多个界面之间自由跳转

前面的几篇文章,基本讲清楚了 Flet 界面设计,但都是“单个界面”。在实际项目中,肯定需要设计“多个界面”啊,多个界面直接怎么导航呢?也就是 Flet 的路由功能,这是Flet开发的必备技术。依然保...

从零开始学Python——使用Selenium抓取动态网页数据

1.selenium抓取动态网页数据基础介绍1.1 什么是AJAX  AJAX(Asynchronouse JavaScript And XML:异步JavaScript和XML)通过在后台与服务器进...