Windows虚拟主机与VPS如何实现301重定向(asp.net)

301重定向这么重要,那么如何实现301重定向呢?卢松松在他的《详解301永久重定向实现方法》一文中介绍了多种实现301重定向的方法,但里面的方法对于使用Windows虚拟主机或是Windows VPS的朋友来说,除了单个页面设置重定向可以用上,IIS 服务器实现整站301重定向的方法却无法应用。因为很多的虚拟主机和VPS的提供商不支持用户去做301重定向。本人遇到了这个问题,非常困扰。搜索了很多的资料,或是在论坛、知名SEO博客询问,得到的建议是:虚拟主机通常没办法做301重定向,建议使用独立服务器。能有台独立主机,肯定好了,但银子有限啊。相信很多朋友都遇到了上述问题。
经过一段时间的研究,我终于找到了Windows虚拟主机与VPS实现301重定向的方法,在这与大家分享:
1、第一种方式:通过Web.config配置实现(要求IIS必须为7.0版本)
假设我们需要将jb51.net 301重定向到 www.jb51.net,那么我们在程序根目录下的Web.config文件中的<configuration>节点内加入以下代码,即可。


代码如下:

<system.webServer>
<rewrite>
<rules>
<rule name="Redirect" stopProcessing="true">
<match url=".*" />
<conditions>
<add input="{HTTP_HOST}" pattern="^jb51.net$" />
</conditions>
<action type="Redirect" url="http://www.jb51.net/{R:0}" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
</system.webServer>

可惜的是,很多Windows虚拟主机空间用的还是IIS6.0,那么IIS6.0有没有方法实现301重定向呢?请参考第二种方式。
2、第二种方式:通过httpModules的URL拦截实现
我们首先在项目中添加一个新的类库,假设名称叫“SiteSense.Domain”。在此类库下添加一个“DomainLocation”的类,并实现了IHttpModule接口,代码如下:


代码如下:

using System;
using System.Collections.Generic;
using System.Text;
using System.Web;
using System.Configuration;
namespace SiteSense.Domain
{
public class DomainLocation : IHttpModule
{
public void Dispose()
{
}
public void Init(HttpApplication context)
{
context.AuthorizeRequest += (new EventHandler(Process301));
}
public void Process301(object sender, EventArgs e)
{
HttpApplication app = (HttpApplication)sender;
HttpRequest request = app.Context.Request;
string lRequestedPath = request.Url.DnsSafeHost.ToString();
string strDomainURL = ConfigurationManager.AppSettings["WebDomain"].ToString();
string strWebURL = ConfigurationManager.AppSettings["URL301Location"].ToString();
//拦截到的Url不包含“www.jb51.net”,而包含“jb51.net”
if (lRequestedPath.IndexOf(strWebURL) == -1 && lRequestedPath.IndexOf(strDomainURL) != -1)
{
app.Response.StatusCode = 301;
app.Response.AddHeader("Location", lRequestedPath.Replace(lRequestedPath, "http://" + strWebURL + request.RawUrl.ToString().Trim()));
app.Response.End();
}
}
}
}

注:此类库须添加引用“System.Configuration” 和“System.Web”命名空间。
然后我们在程序根目录下的Web.config文件中的<configuration>节点内加入以下代码


代码如下:

<appSettings>
<add key="WebDomain" value="jb51.net"/>
<add key="URL301Location" value="www.jb51.net"/>
</appSettings>

在<system.web>节点内的<httpModules>节点,加入以下代码


代码如下:

<add name="DomainLocation" type="SiteSense.Domain.DomainLocation, SiteSense.Domain"/>

即可实现301重定向。完成后,我们可以访问jb51.net 发现在浏览器栏内已经自动变为 www.jb51.net 。为了确认301重定向成功,我开发了个检测网页HTTP返回状态值的工具,可以用于检测某网址是否做了301重定向,网址是:http://www.jb51.net/http_header/ 。下图是,我用该工具对做完301重定向后的检测。

上述两种实现301重定向的方法,只适合ASP.NET程序,不适用于ASP程序。

(0)

相关推荐

  • 在Windows主机上定时备份远程VPS(CentOS)数据的批处理

    不过折腾 VPS 之后,就不只是要备份 MySQL 了,一些独立的站点数据也是需要备份的. 如果有靠谱的第三方 Linux 主机或类似 Amazon 的云存储,那就简单多了,Linux - Linux 的备份很方便. 不过我想在自己的 Windows7 下每天/周运行一次备份,就有了这个小工具. 大概的想法如下: 使用 Putty 自带的 plink.exe 连接到 VPS 上,运行备份并退出登录: 接着使用 Putty 自带的 pscp.exe 将备份复制到本机: 添加一个计划任务,每天/周自

  • 快云vps主机配置免费vpn服务器的方法(windows/linux)

    最近发现有好多的朋友在找免费的vpn帐号,通过免费vpn代理ip,利用vpn翻墙技术去寻找自己想要的东西,临渊羡鱼,不如退而结网,今天快云VPS小编,就分享一下,利用相关的免费vpn代理软件和快云VPS怎么配置自己的免费vpn代理服务器,有了自己的免费vpn代理服务器,建立自己的vpn帐号,就不用在到处去找免费的vpn了,或许你还可以送给你的小伙伴一些免费vpn帐号. 因为快云VPS最低的配置型号-快云VPS基础型都支持安装Windows系统,所以,我们首先需要根据我们个人习惯,或者对Windo

  • CentOS VPS安装Kloxo免费虚拟主机管理系统

    对于不想学命令而直接使用centos vps的新手来说,我们推荐一款傻瓜式的虚拟主机管理系统Kloxo,且是免费的,无限绑定域名. Kloxo简介 Kloxo的前身是lxadmin,是一款免费的虚拟主机管理系统,安装简单,功能强大,可以快速地在red hat,centos系列linux系统的主机上搭建LAMP(Linux+Apache+Mysql+Perl/PHP/Python)环境. 安装kloxo Kloxo安装后会搭建LAMP环境,所以需要一个没有安装有php.mysql.apache等服

  • VPS主机CentOS系统安装LNMP环境图文教程分享

    我们国人使用VPS安装的系统环境最多的可能就是LNMP,笔者最近也在学着安装和使用VPS,也看到很多种系统环境可以选择,当然包括可以选择安装面板管理.暂时我不选择安装面板,一来使用面板没有技术含量,二来从难处学习,直接使用SSH操作VPS感觉还是非常有面子的.从多个系统中,我暂时也比较不了好坏,每一个都安装和测试一遍,并且把相关的信息都记录,一遍日后对比. 今天先来在CentOS中安装LNMP系统,最低的系统要求为128M内存,我相信大家的VPS最低也应该有256M内存,我测试的机器为512M内

  • VPS主机上备份网站和数据库的简单方法

    现在看到越来越多的VPSer开始使用VPS,在使用VPS的时候一个很重要的任务就是VPS提供备份,虽然一些IDC也提供VPS的备份服务,但要不就是收费,都不太适合我们这些VPSer们使用. 今天介绍一下简单的方法为自己的VPS备份. 1.使用putty登录VPS,这里不多介绍了. 2.备份网站目录: 复制代码 代码如下: [root@www ~]# cd /web/www //进入相应的目录 [root@www www]# tar zcvf vps.tar.gz vps //使用tar打包且压缩

  • 如何远程管理连接云主机和VPS(服务器)

    在开通云主机或VPS后会提供你个远程信息,远程信息包括了云主机ip.云主机系统用户名以及密码,windows系统可以使用mstsc来进行远程图形化页面操作,linux系统可以使用ssh远程命令形式来操作,linux需要有良好的基础. 下面以mstsc.exe连接windows 2003服务器为例 一般通过 程序 > 附件 > 通讯 > 远程桌面连接 打开mstsc.exe(下面服务器远程连接工具里面包括了mstsc.exe) ,如图,点选项 计算机那里输入你的云主机ip,用户名和密码输入

  • VPS主机快速搬家方法:边打包边传输边解压适合大中型论坛网站

    博客网站搬家总体做法就是将原空间上的程序代码和图片附件等所有文件移动到新的主机空间上,MysqL数据库文件也要搬家到新的空间上的数据库中,最后调整一下数据库配置文件和域名的DNS解析,等DNS生效后就算是完成网站搬家了. 但是在实际操作的过程中,遇到的最大的困难应该是文件打包下载和上传解压,对于一些大中型论坛或者网站,数据文件可能高达GB以上,MysqL数据库也可能非常大,用FTP来下载和上传文件和用PhpMyAdmin导入MysqL不仅浪费时间,还会经常崩溃失败. 本篇文章部落将为大家分享如何

  • 独立主机/VPS 一键开启IIS的GZIP方法

    Windows服务器设置方法: 下载地址:IIS6-SET-GZIP.rar 下载GZIP批处理文件,解压到任意位置,双击运行IIS6-SET-GZIP.cmd 即可迅速设置好GZIP. 特别提示若您的网站启用了CDN技术,则请勿开启gzip功能,否则会导致用户端访问为空白的情况,设置好后,可以通过http://tool.chinaz.com/Gzips/ 来测试压缩结果,如图: GZIP可以压缩静态htm\html\css\js\asp\aspx\php 等格式文件,根据格式不同文件包含的内容

  • Windows虚拟主机与VPS如何实现301重定向(asp.net)

    301重定向这么重要,那么如何实现301重定向呢?卢松松在他的<详解301永久重定向实现方法>一文中介绍了多种实现301重定向的方法,但里面的方法对于使用Windows虚拟主机或是Windows VPS的朋友来说,除了单个页面设置重定向可以用上,IIS 服务器实现整站301重定向的方法却无法应用.因为很多的虚拟主机和VPS的提供商不支持用户去做301重定向.本人遇到了这个问题,非常困扰.搜索了很多的资料,或是在论坛.知名SEO博客询问,得到的建议是:虚拟主机通常没办法做301重定向,建议使用独

  • 什么是WebsitePanel(基于windows虚拟主机管理系统)

    WebsitePanel是一套比较容易上手的Windows系统中的虚拟主机管理系统.他可以同时管理多台服务器,并且拥有一个简洁的.稳定的统一管理界面.通过这个界面,我们可以在浏览器上管理所有的FTP账号.网站.邮箱以及数据库等,国外类似的虚拟主机管理系统还有DirectAdmin,两者在国外使用范围都很广泛. WebsitePanel的前身是DotNetPanel,之前是付费软件,被微软公司收购后变成了免费的开源软件.软件由主控端和客户端构成,可以在线自动开通空间,邮箱,SQL2000,SQL2

  • 有史以来最好的windows 虚拟主机安全配置

    跨站攻击,远程控制等等是再老套不过了的话题.有些虚拟主机管理员不知是为了方便还是不熟悉配置,干脆就将所有的网站都放在同一个目录中,然后将上级目录设置为站点根目录.有些呢,则将所有的站点的目录都设置为可执行.可写入.可修改.有些则为了方便,在服务器上挂起了QQ,也装上了BT.更有甚者,竟然把Internet来宾帐号加入到Administrators组中!汗--!普通的用户将自己的密码设置为生日之类的6位纯数字,这种情况还可以原谅,毕竟他们大部分都不是专门搞网络研究的,中国国民的安全意识提高还需要一

  • ASP.NET实现301重定向方法

    <span style="font-family:'宋体';font-size:10.5pt;"></span> 关于百度等搜索引擎对于是否带"www"前缀的域名的识别问题:即搜索引擎会将www.abc.com和abc.com识别为不同的两个域名,这样做的后果就是分散了对网站的关注度,不利于网站的宣传和推广. 仅仅是通过Response.Redirect方法来重定向该连接,虽然可以将连接进行重定向,但是无法解决搜索引擎的识别分散问题的:此问题

  • asp.net php asp jsp 301重定向的代码(集合)

    1.Linux主机重定向 Godaddy的Liunx主机,Godaddy本身已经支持Apache,所以直接创建一个.htaccess文件就可以了,一般来说,在本地无法创建.htaccess的时候可以先创建一个txt格式文件,上传到根目录的时候再重命名为".htaccess"就可以了.网上很多如何进行 301重定向的教程,无论是整站重定向还是单页重定向.下面就以我的www.jb51.net为例 1.1 无www域名转移到www域名 复制代码 代码如下: RewriteEngine on

  • Windows Server 2003 虚拟主机的安全配置

    本人上次工作于某家网络公司.负责服务器的维护工作.现失业. 经过一段时间的了解.自认为在构件Windows服务器平台上有所经验. 鉴于现在很多朋友都开始谋划属于自己的虚拟主机.并且呢. 网上相关文章都是很老的那种.所以自己冒昧准备写一系列.  希望各位多多指点.有问题有错误多多斧正.谢谢. 开头很严肃吧.呵呵.那下面就轻松点.哎.才跟GF去吃午饭了.撑的我.哎.老打嗝. 这人跟机器就一样.快的确是挺好.但是要稳定.服务器的稳定就好比谈恋爱的稳定. 否则一天三顿吵.外加吃个消夜.那就甭想好点工作了

  • linux系统虚拟主机开启支持Swoole Loader扩展的方法

    特别说明:只是安装支持Swoole扩展,主机并没有安装服务端.目前支持版本php5.4-php7.2. 1.登陆主机控制面板,找到[远程文件下载]这个功能. 2.远程下载文件填写http://download.myhostadmin.net/vps/SwooleLoader_linux.zip 下载保存的路径填写/others/ 或者从我们下载 3.点击控制面板[php版本],选择php5.3或以上版本,示例选择的是php5.5版本(注意:php5.2版本不能编辑php.ini,所以要选择以上版

  • 华众虚拟主机管理系统 6.0全能破解版+教程

    华众虚拟主机管理系统 6.0全能破解版+教程 本压缩包里面包括全部HZHOST 6.0的全部6.0的文件! 是破解后的文件,里面包含HZHOST 6.0主控端,HZHOST 6.0被控端,HZHOST 6.0的许可证程序,HZHOST 5.2-6.0的升级程序,详细见里面的每个压缩包,压缩包里面的每个SYS32文件为安装6.0的时候所需要的系统文件: 下面介绍一下大致的安装步骤(强烈申明,本软件大家下载后作为个人测试使用,不要用商业用途,不然后果自负 :) 1,下在本软件所有压缩包.并解压. 2

  • CentOS7配置httpd虚拟主机教程

    本实验旨在CentOS7系统中,httpd-2.4配置两台虚拟主机,主要有以下要求: (1) 提供两个基于名称的虚拟主机: www1.stuX.com,页面文件目录为/web/vhosts/www1:错误日志为/var/log/httpd/www1/error_log,访问日志为/var/log/httpd/www1/access_log: www2.stuX.com,页面文件目录为/web/vhosts/www2:错误日志为/var/log/httpd/www2/error_log,访问日志为

随机推荐