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
本站声明:网站内容来源于网络,如有侵权,请联系我们,我们将及时处理。