11
2018
11

301重定向详解

IIS的301永久重定向设置如下图

IIS重定向参数
  1、$S-将请求的 URL 的后缀传递给新的 URL。后缀是用重定向的 URL 代替之后,初始 URL 中所保留的部分。如果未设置EXACT_DESTINATION 标志,则结果目标 URL 的名称将具有所请求文件的名称(作为文件夹名称)以及文件名本身。
  2、$P-将初始 URL 中的参数(如 querystring 参数)传递至新的 URL,不包括问号 (?)。
  3、$Q-将初始 URL 中的参数(如 querystring 参数)传递至新的 URL,包括问号 (?)。
  4、$V-传递请求的 URL,不包括服务器名和任何参数。要包含参数,可使用 $P 或 $Q 变量及 $V 变量。如果未设置EXACT_DESTINATION 标志,则结果目标 URL 的名称将具有所请求文件的名称(作为文件夹名称)以及文件名本身。<!--more-->
  参数还有很多,基本上最常用的就是$S和$Q,任意网址想要实现301的永久重定向只需设置$S和$Q就可以了 。

apache的301重定向
采用“mod_rewrite”模块, 在.htaccess文件中增加301重定向指令:

RewriteEngine on
RewriteCond %{http_host} ^qiquanji.com [NC]
RewriteRule ^(.*)$ http://www.www.qiquanji.com/$1 [L,R=301]

nginx的301重定向
在nginx.conf文件的server字段增加:

if ($host != 'www.qiquanji.com'){
                rewrite ^/(.*)$ http://www.qiquanji.com$1 permanent;
}

意思是只要不是www.qiquanji.com的域名,全跳转到www.qiquanji.com域名上
如果你只想设置不带www的域名跳转到www的域名上。而其他设置的域名正常
请替换成:

if ($host = 'qiquanji.com'){
rewrite ^/(.*)$ http://www.qiquanji.com$1 permanent;
}

用代码实现301跳转
ASP下的301转向代码

<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<%
Response.Status="301 Moved Permanently"
Response.AddHeader "Location","https://www.qiquanji.com/"
Response.End
%>

ASP.Net下的301转向代码

<script runat=”server”>
private void Page_Load(object sender, System.EventArgs e)
{
Response.Status = “301 Moved Permanently”;
Response.AddHeader(”Location”,”www.qiquanji.com“);
}
</script>

PHP下的301转向代码

header(”HTTP/1.1 301 Moved Permanently”);
header(”Location: www.qiquanji.com”);
exit();

CGI Perl下的301转向代码

$q = new CGI;
print $q->redirect(”www.qiquanji.com”);

JSP下的301转向代码

<%
response.setStatus(301);
response.setHeader( “Location”, “www.qiquanji.com” );
response.setHeader( “Connection”, “close” );
%>

原文链接:https://www.qiquanji.com/post/5148.html

本站声明:网站内容来源于网络,如有侵权,请联系我们,我们将及时处理。

微信扫码关注

更新实时通知

« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。