301跳转

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

点点圈 提交于 2019-12-01 09:34:55
在虚拟主机环境中,基本上都是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.pazzn.com/$1 [L,R=301,NC] 强制非WWW域名301跳转 如果访问www域名前缀,会跳转到非www域名,域名替换成自己的 RewriteEngine On RewriteCond %{HTTP_HOST} !^pazzn.com$ [NC] RewriteRule ^(.*)$ http://pazzn.com/$1 [L,R=301] 强制https跳转地址

Apache 配置301跳转

点点圈 提交于 2019-11-30 16:15:48
首先确定加载了mod_alias 模块 在 <Directory > .................. Redirect permanent "^/abc.html$" "/" Redirect permanent "/ccc" "http://www.baidu.com" </Directory> 这样配置后当访问站点 /ccc目录时就会301跳转至百度 或是访问首页下的abc.html 文件时就会跳转至根目录 效果让下: [root@bogon log]# curl -I http://www.mqchina.org/ccc/ HTTP/1.1 301 Moved Permanently Date: Tue, 25 Dec 2018 09:39:44 GMT Server: Apache/2.2.15 (CentOS) Location: http://www.baidu.com/ Connection: close Content-Type: text/html; charset=iso-8859-1 注意: permanent 返回一个永久性重定向状态码(301),表示此资源的位置变动是永久性的。 temp 返回一个临时性重定向状态码(302),这是默认值。 seeother 返回一个“参见”状态码(303),表示此资源已经被替代。 参考官方说明: http:/

深度硬核文:Nginx的301重定向处理过程分析

旧城冷巷雨未停 提交于 2019-11-30 15:56:55
一,序言   “晚上九点,办公室里烟雾缭绕,工作进度依然没有什么进展。王二胖打开了十来个页面,一篇篇技术文章打开,关闭,Nginx不停的重启测试,在试过十来篇技术文章中的方案,经过两个小时的测试之后,王二胖终于找到了一个解决301错误跳转的可行解决方案。时间已经到了晚上十一点多."   这样的场景,在我们的办公室里天天可见。互联网上有很多Nginx 301问题处理方案的错误解答,比如自动加斜杠,端口丢失,暴露内部端口号等,极多量的文章基本就是人云亦云,没有完全弄明白Nginx如何处理301状态码的。甚至对于一些关键性的配置信息的解释是完全错误的。本着源代码就是最正确的文档的原则,我阅读了一遍Nginx处理301问题的相关源代码。 最终发现,Nginx处理301 Moved Permanently的逻辑相当简单,只有六种分支。 二,Nginx的301状态码处理逻辑设计   让我们先看看Nginx的逻辑设计是怎么样的。   HTTP协议中3xx开头的状态响应码都是表示重定向的响应。根据RFC的定义   301 Moved Permanently   302 Found   303 See Other   307 Temporary Redirect   301是永久重定向。如果使用Nginx作为HTTP 服务器,那么当用户输入一个不存在的地址之后,基本上会有两种情况,返回404状态码

nginx 利用return实现301跳转

我的梦境 提交于 2019-11-27 16:34:00
第一种: server { location / { rewrite ^/(.*)$ http://www.baidu.com/$1 permanent; } } 第二种: server { location / { return 301 http://www.baidu.com; } } 第三种: server { location / { #default_type 指定显示格式,不可缺少,!-f /home/999 主要用于使条件为真,因为/home下并没有文件夹999 default_type text/html; if (!-f /home/999) { return 200 "<html><script>window.location.href='http://www.baidu.com'</script></html>"; } } } 来源: https://www.cnblogs.com/weilaibuxiangshuo/p/11370358.html

Docker内nginx使用301强制http跳转https,解决请求http无数据返回问题

那年仲夏 提交于 2019-11-27 10:27:56
Docker内nginx使用301强制http跳转https,解决请求http无数据返回问题 1、情景说明: 2、 nginx下default.conf配置 1、情景说明: 公司这几天进行数据安全升级,大数据自然首当其冲了,基础环境nginx,supervisor等都是安装在docker内,第一次发文,不对的地方请多度指教。 2、 nginx下default.conf配置 配置问下供两个server,先说下第一个server 1、docker容器启动时,需对外映射443 和80端口,其中443端口供https使用,这里使用301进行重定向跳转到443端口 server { listen 80; server_name xxx; index index.html index.php ; access_log /var/log/nginx/80-access.log; error_log /var/log/nginx/80-error.log; return 301 https://$server_name$request_uri; location ~ / { root /code/public; index index.html index.php; } } 2、第二个server为配置https ssl 需要注意的是, ssl on必须要开启,ssl证书这里就不过多描述