虚拟主机等.htaccess文件301跳转http到https的URL自动重定向 米粒实践篇

368次阅读
没有评论

共计 4252 个字符,预计需要花费 11 分钟才能阅读完成。

Ps:米粒刚折腾这个玩意,又找不到合适的教程,所以收集了一堆,一个一个试验。米粒要把不带www的跳转到带www,把http跳转到https,所以整得比较复杂,水平又很菜,所以慢慢摸,磨洋工!

虚拟主机等.htaccess文件301跳转http到https的URL自动重定向 米粒实践篇

不论是http自动跳转到https还是旧域名自动重定向到新域名,.htaccess文件实现URL重写都是非常实用的,非常实用的一个.htaccess规则,使用只需将下面代码另存为.htaccess文件,传到网站根目录下即可。当然前提是你已经开通了.htaccess支持。

将 http 强制重定向至 https,代码如下
RewriteEngine On
RewriteBase /
RewriteCond %{SERVER_PORT} 80

RewriteRule ^(.*)$ https://***.com/$1 [R=301,L]

将 https 访问强制重定向至 http,代码如下:
RewriteEngine On
RewriteBase /
RewriteCond %{SERVER_PORT} 443
RewriteRule ^(.*)$ http://***.com/$1 [R=301,L]
[i]注释:301永久性转移,如只需要302临时性转移,请将规则最后一行R=301中的=301删除即可。但302临时性转移对搜索引擎不友好。而添加301永久性转移后,就变成了永久性转移—-传递原来的权重。[/i]
设置http自动跳转到https
RewriteEngine On
RewriteBase /
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://***.com/$1 [R=301,L]
https自动跳转到http
RewriteEngine On
RewriteBase /
RewriteCond %{SERVER_PORT} 443
RewriteRule ^(.*)$ http://***.com/$1 [R=301,L]
》》
如何登入www.domain.com就直接跳到www.domain.com/dir (也就是访问主域名转向到一个目录,例如bbs shop等等)
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?domain\.com$
RewriteCond %{REQUEST_URI} !^/dir/
RewriteRule ^(.*)$ /dir/$1 (WIKI中的两句是不需要的)
》》
防止别人的域名解析到自己的独立IP
RewriteEngine On
RewriteCond %{HTTP_HOST} !(^www\.yourdomain\.com$) [NC]
RewriteRule ^(.*)$ http://www.yourdomain.com/$1 [L,R=301] 
(代码的作用:只允许自己的域名解析到自己的独立IP,别人解析到自己的独立IP后都会跳转到自己的域名
如果是自己的域名需要解析到独立IP,可以加上代码 RewriteCond %{HTTP_HOST} !(^donvee\.com$) [NC] 修改域名即可)
这个可以完成如下几个功能: 
1. 如果你的网站绑定多个域名,为了只使用一个域名,就可以设置如上规则,例如网站绑定了 www.a.com  www.b.com 那么为了防止重复的url,就可以把上面的域名设置为www.a.com,这样来自www.b.com所有的访问都会重定向到 www.a.com
2. 如果你用的是独立IP,那么别人就可以把它的域名解析到你的IP上,这个时候可以用这个规则,其他所有解析到你的IP上的域名都会转向到你设置的域名上。 

》》

自定义404错误页面: ErrorDocument 404 /404.shtml  (写入.htaccess文件保存即可)

》》

把不带www的域名转向到带www的(网址规范化)

RewriteEngine on
RewriteCond %{HTTP_HOST} ^domain\.com$ [NC]

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

全部统一到不带www
  
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.domain\.com$ [NC]
RewriteRule ^(.*)$ http://domain.com/$1 [L,R=301]
》》
设置域名泛解析,可以.htaccess配置文件来实现泛域名解析,具体的方法是在.htaccess文件中添加如下代码:
RewriteEngine On
RewriteBase /
#[NC]的含义是忽略大小写
RewriteCond %{HTTP_HOST} ^test\.yourdomain\.com$ [NC]
RewriteRule ^([a-z0-9\-]+\.(.*))$ test/$1
》》
也可以用Rewrite实现301转向: 
通过.htaccess文件设置
通过在.htaccess加入转向代码也可以实现301转向,这种方法设置还是比较方便的,代码如下:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^olddomain\.com$ [NC]
RewriteRule ^(.*)$ http://newdomain.com/$1 [L,R=301]
以上这段代码完全可以实现我们想要的301转向效果,即页面之间的链接转向,当然也可以通过搭建的网站中的任意一个链接跳转到新域名的网站首页,具体代码如下:
Redirect 301 /old.html http://www.domain.com/new.html
通过这种设置我们可以从原域名搭建的网站中的任意一个链接跳转到新域名的网站首页。
》》
时区设置:在 Htaccess文件中加入 SetEnv TZ Asia/Chongqing 设置时区,Asia/Chongqing 换成你要设置的时区,Asia/Chongqing就表示北京时间。
其他时区的写法可在WHM面板的服务器时间设置里查到,查看的时候注意千万不要修改服务器的时间设置。 
》》
屏蔽IP  
1、禁止特定的IP
order allow,deny
allow from all
deny from 1.1.1.1;  (写要封的IP)
2、只允许特定的IP访问
order deny,allow
deny from all
allow from  61.228.209.85 (允许的IP)
》》
客户想把cpanel默认的三种邮件收发工具的地址设置成mail.域名.com的形式访问,可以吗?
答:RewriteEngine on
RewriteCond %{HTTP_HOST} ^mail\.(.*)
RewriteRule ^.* https://www.%1:2095 [L]
另外这个规则是通用的,可以写到httpsd.conf中在整台服务器实现上述功能。
》》
防止.htaccess文件被查看 
order allow,deny
deny from all
(其他文件也可以类似这样处理)
》》
禁止显示目录列表
如果目录没有默认首页文件,将会列出文件列表,可能造成安全隐患,为避免这种情况(而不必创建一堆的新index文件),你可以在你的.htaccess文档中键入以下命令,用以阻止目录列表的显示: 
Options -Indexes 
》》
设置默认首页及顺序 在.htaccess文件中加入 (主目录及子目录逐级显示首页文件)
DirectoryIndex index.html index.htm index.php index.cgi 
》》
客户因资源占用过大,账户被suspend了,之后客户同意处理,又把他的账户unsuspend了,访问客户域名会出现这种情况:正在连接到127.0.0.1 ,还要输入用户名和密码,原因是.htaccess没替换掉,在unsuspended 账户的时候,为什么.htaccess没有替换掉?
被攻击才会出现这种问题,资源占用过大的暂停了不会出现这种问题。原因是被攻击的时候我们修改了.htaccess把请求转向了,解封之后要手动修正一下,或者先改回去再unsuspended 
》》实现默认首页(缺省页)识别设置:
DirectoryIndex index.php 
》》实现301定向:
RewriteEngine On
RewriteCond %{http_host} ^boqian.net [NC]
RewriteRule ^(.*)$ http://www.nbb.mobi/$1 [R=301,L]
》》实现主域名跳转到子目录网站:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?asdrzm\.com$
RewriteCond %{REQUEST_URI} !^/asdrzm.com/
RewriteRule ^(.*)$ /asdrzm.com/$1
》》实现301重定向,并且主域名和独立ip跳转到子目录网站
RewriteEngine On
RewriteCond %{http_host} ^asdrzm.com [NC]
RewriteRule ^(.*)$ https://www.asdrzm.com/$1 [R=301,L]
RewriteCond %{http_host} ^198.15.75.242 [NC]
RewriteRule ^(.*)$ https://www.asdrzm.com/$1 [R=301,L]
RewriteBase /
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?asdrzm\.com$
RewriteCond %{REQUEST_URI} !^/asdrzm.com/
RewriteRule ^(.*)$ /asdrzm.com/$1
或者
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?dfbazhu\.com$
RewriteCond %{REQUEST_URI} !^/dfbazhu.com/
RewriteRule ^(.*)$ /dfbazhu.com/$1 
RewriteCond %{http_host} ^198.15.75.226 [NC]
RewriteRule ^(.*)$ https://www.dfbazhu.com$1 [R=301,L]
.htaccess文件301重定向https到httpss的自动跳转URL重写方法大全。
正文完
 1
言之在线
版权声明:本站原创文章,由 言之在线 2021-11-30发表,共计4252字。
转载说明:系原创、转载、摘录,或修订后发表,素材来源于网络,若侵犯了您的权益,请联系106265257@qq.com删除,敬请谅解!
评论(没有评论)