请选择 进入手机版 | 继续访问电脑版

巅峰霸主

 找回密码
 立即注册

QQ登录

只需一步,快速开始

[服务器] .htaccess文件301重定向http到https的自动跳转URL重写方法大全

  [复制链接] [添加相关主题]
烈火大地 发表于 2019-10-27 14:31:10 | 显示全部楼层 |阅读模式
阿里云服务器2折起!

游客只能显示部分内容,请登录后查看帖子完整内容!!!注册完全免费。

您需要 登录 才可以下载或查看,没有帐号?立即注册

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

将 http 强制重定向至 https,代码如下:
  1. RewriteEngine On
  2. RewriteBase /
  3. RewriteCond %{SERVER_PORT} 80
  4. RewriteRule ^(.*)$ https://***.com/$1 [R=301,L]
复制代码


将 https 访问强制重定向至 http,代码如下:
  1. RewriteEngine On
  2. RewriteBase /
  3. RewriteCond %{SERVER_PORT} 443
  4. RewriteRule ^(.*)$ http://***.com/$1 [R=301,L]
复制代码


注释:301永久性转移,如只需要302临时性转移,请将规则最后一行R=301中的=301删除即可。但302临时性转移对搜索引擎不友好。而添加301永久性转移后,就变成了永久性转移----传递原来的权重。

设置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 ^.* http://www.%1:2095 [L]
另外这个规则是通用的,可以写到httpd.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 ^(.*)$ http://www.asdrzm.com/$1 [R=301,L]
RewriteCond %{http_host} ^198.15.75.242 [NC]
RewriteRule ^(.*)$ http://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 ^(.*)$ http://www.dfbazhu.com$1 [R=301,L]


上一篇:.Htaccess文件实现301重定向URL重写的七种方法详情
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|巅峰霸主 ( 京ICP备12023415号-2 )

声明:本站的任何信息和内容仅代表作者的立场和观点,与巅峰霸主网无关。

禁止在巅峰霸主网发布任何与《中华人民共和国法律》相抵触的言论!

GMT+8, 2019-11-12 21:19 , Processed in 0.080143 second(s), 25 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表