happyxp 发表于 2012-8-6 17:18:50

<p>301重定向检测网址:<font style="BACKGROUND-COLOR: #ffffff" face="Verdana"><a href="http://www.ranknow.cn/tools/redirectcheck">http://www.ranknow.cn/tools/redirectcheck</a></font> </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font style="BACKGROUND-COLOR: #ffffff" face="Verdana"><a href="http://tool.chinaz.com/pagestatus/">http://tool.chinaz.com/pagestatus/</a></font> </p>
<p>第一个比较直观,第二个看返回代码,是301那就妥了。</p>
<p>-----------------------割了---------------------</p>
<p>&nbsp; 今天折腾asp 301重定向,开始用了.htaccess文件,代码用了</p>
<p><font face="Verdana">&lt;script language=javascript&gt;<br/>if (document.domain =='xp37.com') <br/>&nbsp;&nbsp;&nbsp; this.location = "http://www.xp37.com" + this.location.pathname + this.location.search;<br/>&lt;/script&gt;</font></p>
<p>&nbsp;</p>
<p>和</p>
<p><font face="Verdana">&lt;Files ~ "^.(htaccess|htpasswd)$"&gt;<br/>deny from all<br/>&lt;/Files&gt;<br/>RewriteEngine on<br/>RewriteCond %{HTTP_HOST} ^(xp37\.com)(:80)? <br/>RewriteRule ^(.*) <a href="http://www.xp37.com/$1">http://www.<font color="#000000">xp37</font>.com/$1</a> <br/>order deny,allow<br/>两种,结果都没一点反应。问空间商他说</p>
<div>.htaccess&nbsp;是appche支持的文件,我们的是IIS空间,所以.htaccess文件不可以用。</div>
<div>&nbsp;</div>
<div>那就百娘呗,找了一段代码:</div>
<div><font face="Verdana">&lt;%@LANGUAGE="VBSCRIPT"%&gt;</font></div>
<div><font face="Verdana">&lt;%<br/>if request.ServerVariables("SERVER_NAME")="xp37.com" then <br/>Response.Status="301 Moved Permanently"<br/>Response.AddHeader"Location"."http://www.xp37.com"<br/>Response.End<br/>end if<br/>%&gt;</font></div>
<div>&nbsp;结果500错误,乱码。。。总结可能是空间的问题,有的网站好用有的不好用,建议用这种,不能用的话用下面这个,这个判断的更为全面,把指向这个地址的所有的域名都跳转到主域名上面。</div>
<div><font face="Verdana">&lt;%<br/>if request.ServerVariables("HTTP_HOST")&lt;&gt;"www.xp37.com" then<br/>Response.Status="301 Moved Permanently"<br/>if Request.ServerVariables("QUERY_STRING")&lt;&gt;"" then p="?" end if<br/>if Request.ServerVariables("SCRIPT_NAME")="/index.asp" then<br/>Response.AddHeader "Location","http://www.xp37.com"<br/>else<br/>Response.AddHeader "Location","http://www.xp37.com"&amp;Request.ServerVariables("SCRIPT_NAME")&amp;p&amp;Request.ServerVariables("QUERY_STRING")<br/>end if<br/>Response.End<br/>end if</font></div>
<div>%&gt;</div>
<div>测试通过</div></font>
[此贴子已经被作者于2012-11-13 17:19:24编辑过]

happyxp 发表于 2012-9-19 11:46:40

<p><font style="BACKGROUND-COLOR: #ffffff" face="Verdana">补充:</font></p>
<p><font style="BACKGROUND-COLOR: #ffffff" face="Verdana">1、以下代码只适用于网站域名更换的情况下,即不同的域名和不同的空间根目录,把上面代码放置于旧站网站文件的顶部即可,这时访问旧站时就会重定向到新站www.xp37.com。如果网站是属于一个网站空间绑定2个域名,2个域名的根目录为同一个时,那么就会出现死循环了。</font></p>
<p><font style="BACKGROUND-COLOR: #ffffff" face="Verdana">ASP代码:<br/>&lt;%<br/>Response.Status=”301 Moved Permanently”<br/>Response.AddHeader “Location”,”http://www.xp37.com”<br/>Response.End<br/>%&gt;<br/>PHP代码:<br/>&lt;? Header( “HTTP/1.1 301 Moved Permanently” );<br/>Header( “Location: http://www.xp37.com” );?&gt;</font></p>
<p><font style="BACKGROUND-COLOR: #ffffff" face="Verdana">&nbsp;</font></p>
<p><font style="BACKGROUND-COLOR: #ffffff" face="Verdana">2、如果是一个网站绑定多个域名情况,将不带WWW的子域名或其他域名重定向到一个主域名,那么只需要加个判断:<br/>ASP重定向代码:<br/>&lt;%<br/>if request.ServerVariables(“HTTP_HOST”)="xp37.com”&nbsp; then<br/>Response.Status=”301 Moved Permanently”<br/>Response.AddHeader “Location”,”http://www.xp37.com”<br/>Response.End<br/>end if<br/>%&gt;<br/>PHP重定向代码:<br/>&lt;?php<br/>$the_host = $_SERVER['HTTP_HOST'];//取得进入所输入的域名<br/>$request_uri = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : ”;//判断地址后面部分<br/>if($the_host !== ‘ccanju.com’)//旧域名或子域名地址<br/>{<br/>header(‘HTTP/1.1 301 Moved Permanently’);//发出301头部<br/>header(‘Location: 跳转到我的新域名地址<br/>}<br/>?&gt;<br/>这时访问xp37.com就会301重定向到www.xp37.com了。</font></p>
<p><font style="BACKGROUND-COLOR: #ffffff" face="Verdana">&nbsp;</font></p>
<p><font style="BACKGROUND-COLOR: #ffffff" face="Verdana"><strong>dede的301跳转例子</strong></font></p>
<p><strong></strong>&nbsp;</p>
<p><font style="BACKGROUND-COLOR: #ffffff" face="Verdana">强调一点:我们是将index.php的优先级设为比index.html高:</font></p>
<p><font style="BACKGROUND-COLOR: #ffffff" face="Verdana">第一种方法:更改跟目录下的index.php文件</font></p>
<p><font style="BACKGROUND-COLOR: #ffffff" face="Verdana">&nbsp;&lt;?php</font></p>
<p><font style="BACKGROUND-COLOR: #ffffff" face="Verdana">if(!file_exists(dirname(__FILE__).'/data/common.inc.php'))</font></p>
<p><font style="BACKGROUND-COLOR: #ffffff" face="Verdana">{&nbsp;&nbsp; </font></p>
<p><font style="BACKGROUND-COLOR: #ffffff" face="Verdana">&nbsp;&nbsp;&nbsp; header('Location:install/index.php');&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; exit();&nbsp;&nbsp; <br/>}&nbsp;&nbsp; <br/>//自动生成HTML版&nbsp;&nbsp; <br/>if(isset($_GET['upcache']))&nbsp;&nbsp; <br/>{&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; require_once (dirname(__FILE__) . "/include/common.inc.php");&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; require_once DEDEINC."/arc.partview.class.php";&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; $GLOBALS['_arclistEnv'] = 'index';&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; $row = $dsql-&gt;GetOne("Select * From `dede_homepageset`");&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; $row['templet'] = MfTemplet($row['templet']);&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; $pv = new PartView();&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; $pv-&gt;SetTemplet($cfg_basedir . $cfg_templets_dir . "/" . $row['templet']);&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; $pv-&gt;SaveToHtml(dirname(__FILE__).'/index.html');&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; include(dirname(__FILE__).'/index.html');&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; exit();&nbsp;&nbsp; <br/>}&nbsp;&nbsp; <br/>else{&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>/*&nbsp; header('HTTP/1.1 301 Moved Permanently');&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; header('Location:index.html');*/&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; $domain = explode(".", $_SERVER['HTTP_HOST']);&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; if(count($domain)==2 &amp;&amp; $domain=='ccanju.com'){&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; header('HTTP/1.1 301 Moved Permanently');&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; header('Location:http://www.ccanju.com/');&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; }else{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; include(dirname(__FILE__).'/index.html');&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; exit();&nbsp;&nbsp;&nbsp; <br/>}&nbsp;&nbsp; <br/>?&gt; <br/>第二种</font></p>
<p><font style="BACKGROUND-COLOR: #ffffff" face="Verdana">&lt;?php&nbsp; </font></p>
<p><font style="BACKGROUND-COLOR: #ffffff" face="Verdana">$HOST=$_SERVER['HTTP_HOST'];&nbsp;&nbsp; <br/>if ($HOST=="ccanju.com"){&nbsp;&nbsp; <br/>Header("HTTP/1.1 301 Moved Permanently");&nbsp;&nbsp; <br/>Header("Location:http://www.ccanju.com");&nbsp;&nbsp; <br/>exit();&nbsp;&nbsp; <br/>}&nbsp;&nbsp; <br/>if(!file_exists(dirname(__FILE__).'/data/common.inc.php'))&nbsp;&nbsp; <br/>{&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp; header('Location:install/index.php');&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp; exit();&nbsp;&nbsp; <br/>}&nbsp;&nbsp; <br/>require_once (dirname(__FILE__) . "/include/common.inc.php");&nbsp;&nbsp; <br/>require_once DEDEINC."/arc.partview.class.php";&nbsp;&nbsp; <br/>$GLOBALS['_arclistEnv'] = 'index';&nbsp;&nbsp; <br/>$row = $dsql-&gt;GetOne("Select * From `dede_homepageset`");&nbsp;&nbsp; <br/>$row['templet'] = MfTemplet($row['templet']);&nbsp;&nbsp; <br/>$pv = new PartView();&nbsp;&nbsp; <br/>$pv-&gt;SetTemplet($cfg_basedir . $cfg_templets_dir . "/" . $row['templet']);&nbsp;&nbsp; <br/>$pv-&gt;Display();&nbsp;&nbsp; <br/>?&gt;<br/></font></p>
<p><font style="BACKGROUND-COLOR: #ffffff" face="Verdana">&nbsp;开始的时候我用的上面的例子弄的 不过都没有实现效果 </font></p>
<p><font style="BACKGROUND-COLOR: #ffffff" face="Verdana">因为我的也是套用模板程序的网站&nbsp; 后来想起dede也是模板类得 所以就找了dede的例子 </font></p>
<p><font style="BACKGROUND-COLOR: #ffffff" face="Verdana">最后在根目录下的index.php下面修改的代码 </font></p>
<p><font style="BACKGROUND-COLOR: #ffffff" face="Verdana">&lt;?php</font></p>
<p><font style="BACKGROUND-COLOR: #ffffff" face="Verdana">&nbsp;$HOST=$_SERVER['HTTP_HOST'];&nbsp; if ($HOST=="ccanju.com"){&nbsp; Header("HTTP/1.1 301 Moved Permanently");&nbsp; Header("Location:http://www.ccanju.com");&nbsp; exit();&nbsp; } <br/>require('path.inc.php');</font></p>
<p><font style="BACKGROUND-COLOR: #ffffff" face="Verdana">&nbsp;?&gt;</font></p>
<p><font style="BACKGROUND-COLOR: #ffffff" face="Verdana">成功实现跳转</font></p>
[此贴子已经被作者于2012-11-13 15:30:15编辑过]

happyxp 发表于 2012-12-29 10:08:38

<p><font style="BACKGROUND-COLOR: #ffffff" face="Verdana">如果你能访问服务器也就是能取得IIS权限还有另外一种方法,IIS服务器上的301永久重定向设置问题。实现方法如下:</font></p>
<p><font style="BACKGROUND-COLOR: #ffffff" face="Verdana">  1.新建一个站点,对应目录如E:\wwwroot\301web。该目录下只需要1个文件,即index.html或者加个404.htm。绑定要跳转的域名,如图:</font></p>
<p></p>
<p><font style="BACKGROUND-COLOR: #ffffff" face="Verdana">  </font><font style="BACKGROUND-COLOR: #ffffff" face="Verdana">2.在IIS中选中刚才我们建立的站点,右键,属性,主目录,选择重定向到,输入网址如:<a href="http://www.xp37.com/">http://www.xp37.com</a>,同时注意选中下面的资源的永久重定向选项。如下图:</font></p>
<p>&nbsp;<br/></p>
<p><font style="BACKGROUND-COLOR: #ffffff" face="Verdana">  </font><font style="BACKGROUND-COLOR: #ffffff" face="Verdana">3.到此,我们已经完成了将xxxx.com这个域名301重定向到<a href="http://www.xxxx.com/">www.xp37.com</a>的工作。</font></p>
<p><font style="BACKGROUND-COLOR: #ffffff" face="Verdana">  注意问题:</font></p>
<p><font style="BACKGROUND-COLOR: #ffffff" face="Verdana">  “上面输入准确的 URL(X)”这个选项建议不要选。</font></p>
<p><font style="BACKGROUND-COLOR: #ffffff" face="Verdana">  不选的结果是:</font></p>
<p><font style="BACKGROUND-COLOR: #ffffff" face="Verdana">  当输入xp37.com转到了www.xp37.com,</font></p>
<p><font style="BACKGROUND-COLOR: #ffffff" face="Verdana">  当输入xp37.com/sanwen/suibi/时,转到了www.xp37.com/sanwen/suibi/。</font></p>
<p><font style="BACKGROUND-COLOR: #ffffff" face="Verdana">  选上的结果是:</font></p>
<p><font style="BACKGROUND-COLOR: #ffffff" face="Verdana">  当你输入xp37.com或者xp37.com/sanwen/suibi/都会转到www.xp37.com。</font></p>
<p><font style="BACKGROUND-COLOR: #ffffff" face="Verdana">  好了,如果只是想把不带www的转到带www的或者其他没有用过的域名转到正在使用的域名,这样就可以了。但是如果你要的域名已经做过网站,想要把权重传递给新网站,可以参考下面这个方法:</font></p>
<p><font style="BACKGROUND-COLOR: #ffffff" face="Verdana">  第一步同上,主要是第二步,如图:</font></p>
<p><font style="BACKGROUND-COLOR: #ffffff" face="Verdana"></font><br/><font style="BACKGROUND-COLOR: #ffffff" face="Verdana">  注意红色字体的部分,在重定向到地址的后面多了$S$Q字符,即写成了http://www.xp37.com$S$Q。“上面输入准确的 URL(X)”这个选项也打了勾。</font></p>
<p><font style="BACKGROUND-COLOR: #ffffff" face="Verdana">  对于$S$Q字符,这里解释一下:</font></p>
<p><font style="BACKGROUND-COLOR: #ffffff" face="Verdana">  $S 将请求的URL 的后缀传递给新的URL。后缀是用重定向的URL 代替之后,初始URL 中所保留的部分。</font></p>
<p><font style="BACKGROUND-COLOR: #ffffff" face="Verdana">  如果未设置 EXACT_DESTINATION 标志,则结果目标URL 的名称将具有所请求文件的名称(作为文件夹名称)以及文件名本身。</font></p>
<p><font style="BACKGROUND-COLOR: #ffffff" face="Verdana">  $Q 将初始URL 中的参数(如 querystring 参数)传递至新的 URL,包括问号(?)。</font></p>
<p><font style="BACKGROUND-COLOR: #ffffff" face="Verdana">  如果不加上$S$Q字符的话,内页的301都会跳转到首页,加上$S$Q字符的目的就是内页也能准确的跳转到新域名的对应内页。</font></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 切记,使用$S$Q字符一定要勾选“输入准确的URL”,刚开始试了几次都没成功,后来发现是忘了打钩,随后,一切正常。</p>
页: [1]
查看完整版本: asp 301重定向的问题