301重定向

HTTP中的301、302、303、307、308

*爱你&永不变心* 提交于 2019-12-02 21:40:08
结论 3XX开头的HTTP状态码都表示重定向的响应。 301、308是永久重定向;302、303、307是临时重定向。 301、302是http 1.0的内容,303、307、308是http1.1的内容。 301和302本来在规范中是不允许重定向时改变请求method的(将POST改为GET),实际许多浏览器实现的时候允许重定向时改变请求method。 303的出现是允许重定向时改变请求method。此外303响应禁止被缓存。307、308则不允许重定向时改变请求method。 RFC 7231规定: 301 Moved Permanently,永久重定向 302 Found 303 See Other 307 Temporary Redirect RFC 7538规定: 308 Permanent Redirect 永久重定向 301、302搜索引擎处理区别 301表示搜索引擎在抓去新内容的同时,将旧的网址替换为重定向之后的网址; 302表示旧地址的资源仍存在,重定向时临时从A地址跳转到B地址,搜索引擎会抓取新的内容,并继续保存旧的网址。 临时重定向:302、303与307 结论 302允许各种各样的重定向,一般都实现为GET到GET重定向,但是不能确保POST会重定向为POST。 303只允许任意请求到GET的重定向。 307和302一样,但不允许POST到GET的重定向。

二级目录301重定向到二级域名的两种方法

跟風遠走 提交于 2019-12-02 04:16:29
一般在网站权重还不足够高时,要建子站的话,都是放在二级目录里面。比如SEO朋友喜欢在二级目录建博客或论坛,好处是可以继承主站的权重。当网站足够强大了,就可以放到二级域名或者其他新域名。 对于搜索引擎来说,二级域名就是新域名,以一个新的站点来看待。如何保证转移后有效继承原来的权重不被降权?最好的办法就是做301。下面具体介绍二级目录301重定向到二级域名的两种方法: 一、.htaccess 文件代码法 这种方法只合适apache服务器,支持rewrite伪静态。直接在.htaccess 文件中增加这样一段规则: 复制代码 代码如下: RewriteEngine On RewriteBase / Redirect permanent /你的目录地址 http://bbs.dananjie.com/ 规则注释:当访问(/你的目录地址)原程序子目录的时候,自动重定向到你的二级域名http://bbs.dananjie.com/,或者另外的新域名(请把域名网址修改成自己的)。 二、PHP文件代码法 编写301.inc.php文件 在网站根目录新建一个 301.inc.php 文件,写入以下代码: 复制代码 代码如下: <?php $the_host = $_SERVER['HTTP_HOST']; //取得当前访问域名 $url = $_SERVER['PHP_SELF']; /

深度硬核文: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状态码

301,302,303,307重定向区别

烈酒焚心 提交于 2019-11-27 21:41:38
规范中: 301是永久重定向,之后的请求中客户端应该使用新的URI(即,可以被浏览器缓存),对于POST/PUT/DELETE请求 客户端不应该自动的重定向 302是由于未知原因重定向,之后的请求中客户端不应该用新的URI,对于POST/PUT/DELETE请求 客户端不应该自动重定向 303是由于未知原因重定向,之后的请求中客户端不应该用新的URI,对于POST/PUT/DELETE请求 客户端应该使用GET请求来替代 307是临时重定向,之后资源可能会回到这个位置,之后的请求中客户端应该使用旧的URI,对于POST/PUT/DELETE请求 客户端不应该自动重定向 许多浏览器客户端没有遵循规范,而是当作303来处理的。 303和307是在HTTP1.1规范中添加的用来的和302区分开的。 302 Found 303 See Other 307 Temporary Redirect 来源: https://www.cnblogs.com/eret9616/p/11378677.html

Zblog全站301重定向

倖福魔咒の 提交于 2019-11-27 21:37:35
1、静态管理中心-ReWrite规则,创建.htaccess文件 创建好在FTP根目录可以看到(FTP看不到的情况是因为隐藏起来了,显示隐藏文件就行了) 2、.htaccess文件创建好在FTP根目录里 3、打开htaccess文件,在RewriteEngine On下面加两句代码(域名换成你的哦) RewriteCond %{HTTP_HOST} ^xiaochunblog.com$ [NC] RewriteRule ^(.*)$ http://www.xiaochunblog.com/$1 [L,R=301] 4、然后上传到根目录,Zblog全站301重定向设置完成。 来源: https://www.cnblogs.com/xiaochunblog/p/11378371.html