实现二级域名时出现的问题--顶贴有分
小弟想实现二级域名,采用的组件是UrlRewritingNet.UrlRewriter.dll现在出现如下问题:
问题一:跳转时产生的问题,在首页我做了域名判断跳转
///
///取得二级域主机头值,并实行转向
///
public void CheckDomain()
{
HostName = HttpContext.Current.Request.Url.Host.ToString(); //获取URL主机地址
UserHost = HostName.Split(new Char[] { '.' }); //数组,以“.”分隔
//判断二级域名地址是否符合abc.域名.com 这种格式,及数组UserHost长度不大于3,否则就跳传到其它页
if (UserHost.Length > 3)
{
HttpContext.Current.Response.Redirect("http://www.domain.cn/Error.aspx");//跳转到出错页面
return;
}
UserDomainName = UserHost[0].ToString(); //取得数组最前面一组值,及二级域名主机头
//进行特定判断,及是不要用到做为二级域名的主机头
if (UserDomainName.ToLower() == "www" || UserDomainName.ToLower() == "domain" || UserDomainName == null || UserDomainName.ToString() == "")
{
//你的动作
}
else
{
HttpContext.Current.Session["UserDomainName"] = UserDomainName; //将二级域名主机头存入Session
Server.Transfer("~/" + UserDomainName + "/default.aspx", false);//跳转到用户目录,即是二级域名所要去到的目录,当然你也可以跳传至*.aspx?UserID=xxx这样的链接
//Response.Redirect("~/" + UserDomainName + "", false);
return;
}
}
如上代码,如果使用Server.Transfer确实可以跳转至目标页面例如http://news.un148.cn/default.aspx
但是在这个目标页中的内容却是连接错误,原因是确实路径,将URL地址修改为http://news.un148.cn/news/detail_24219.htm就可以访问页面。问题就在这里,怎么样可以实现直接点击不修改连接就能访问该新闻页。
问题二:如果使用Response.Redirect那么跳转后的URL地址就为http://news.un148.cn/news/
我想通过URL重写来修改,但是一直没有效果,我的重写配置为:
<add name="Rewrite18" virtualUrl="http://(\w+)\.un148\.cn/" rewriteUrlParameter="ExcludeFromClientQueryString" destinationUrl="http://www.un148.cn/$1/default.aspx" ignoreCase="true"/>
请教高手,我应该怎样实现想要的功能,
--------------------编程问答-------------------- 沙发
关注 帮顶 --------------------编程问答-------------------- 占个位置。。。。上去。。 --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- LZ有点牛 --------------------编程问答-------------------- 听说顶帖有分,先顶再看! --------------------编程问答-------------------- 路径在好好看看·` --------------------编程问答-------------------- 观看,帮顶... --------------------编程问答-------------------- --------------------编程问答-------------------- 为什么要这么麻烦呢,即使用虚拟主机,大部分主机商也都支持name.domain.com映射到www.domain.com/name的配置 --------------------编程问答-------------------- 真愁人,有强人在吗????? --------------------编程问答-------------------- 拿点分,今天头疼,不想想问题 --------------------编程问答--------------------
有点晕,顶一下 --------------------编程问答-------------------- 感谢顶帖的朋友们,但是更希望大家能帮我解决下问题.... --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- 等高手,等高手,高手咋还不来? --------------------编程问答-------------------- 顶帖,顶帖.... --------------------编程问答-------------------- --------------------编程问答-------------------- 看了几遍还没看懂什么意思,大概是饿晕了吧
--------------------编程问答-------------------- 郁闷啊,这个问题怎么就寂寞上了啊? --------------------编程问答-------------------- 接分。。没看懂需求 --------------------编程问答-------------------- 你的问题我都看晕了. --------------------编程问答-------------------- 其实我的问题就是想通过URL重写来修改URL达到我所要的效果 --------------------编程问答-------------------- URL重写真有那么困难吗? --------------------编程问答-------------------- URL重写very easy,但是我遍看代码,除了配置没发现哪用到了URL重写的东西,Server.Transfer和URL重写毛关系没有, 也可能是偶才识学浅,等高人解惑 --------------------编程问答--------------------
如果目标也连接等错误 你看看是不是路径问题 把链接都改成相对服务器的路径 --------------------编程问答-------------------- 不懂 打点帮顶................................ --------------------编程问答-------------------- 你的问题,就是出在Server.Transfer上
比如你是:
http://abc.www.a.com/
跳到http://www.a.com/abc/abc.aspx
因为你用的是Server.Transfer,所以abc.aspx里的内容都以http://abc.www.a.com/这个路径为准了
比如图片<img src="1.jpg">
访问这个地址:http://www.a.com/abc/abc.aspx,这个图片就是:http://www.a.com/abc/1.jpg
而访问这个地址:http://abc.www.a.com/,这个图片就是:http://abc.www.a.com/1.jpg
当然会找不到了
一个解决方案就是在页面中不要使用相对路径,而是使用/开头的绝对路径,比如:
<img src="/abc/1.jpg"
--------------------编程问答-------------------- 使用 RewritePath([url]) 方法试试 --------------------编程问答-------------------- 至于Url重写,你可以去微软网站下载源代码和示例:
http://www.microsoft.com/china/msdn/library/webservices/asp.net/URLRewriting.mspx?mfr=true
补充:.NET技术 , ASP.NET