有关url重写
最近看了一些相关教程,现在我明白如何 打入例如这样的url: localhost/yousite/d1.aspx
即转入 localhost/yousite/xx.aspx?ID=1 这个我看教程实现了
可是我刚刚接触这个 不明白的是
象有些网站那样 鼠标停留在超链接上的时候 浏览器下面显示的就是重写后的url 这个怎么实现呢? 还有就是 点击这个超链接 转入该页面时候 浏览器地址栏也应该是重写后的url 这个怎么实现呢?
我现在鼠标停留在 比如localhost/yousite/xx.aspx?ID=1 这个超链接上时候 我想再浏览器下面就显示的是 重写后的url :localhost/yousite/d1.aspx ,而点击它进入该页面后 浏览器地址栏里也应该是localhost/yousite/d1.aspx 这个怎么实现的呢?
十分感谢热心朋友的解答
问题点数:30、回复次数:19Top
1 楼gsky()回复于 2006-01-11 08:15:13 得分 0
没有人帮忙吗。。Top
2 楼gsky()回复于 2006-01-11 08:54:30 得分 0
upTop
3 楼bgu(彼岸)回复于 2006-01-11 09:16:43 得分 10
在梆定数据时,把链接用梆定方法做就可以了。
如:
<a href="localhost/yousite/xx.aspx?ID=<%#ID%>">test</a>
重写一个梆定链接:
<a href="localhost/yousite/d<%#ID%>.aspx">test</a>Top
4 楼gsky()回复于 2006-01-11 12:45:34 得分 0
先谢了 都是这种做法吗?Top
5 楼time_is_life(今夜太冷:http://timeislife.blog.sohu.com)回复于 2006-01-11 12:55:07 得分 2
http://time-is-life.cnblogs.com/articles/292861.htmlTop
6 楼gsky()回复于 2006-01-11 16:37:49 得分 0
楼上发的是什么东西?
是不是我说的那种情况都是 下面这样作的??
在梆定数据时,把链接用梆定方法做就可以了。
如:
<a href="localhost/yousite/xx.aspx?ID=<%#ID%>">test</a>
重写一个梆定链接:
<a href="localhost/yousite/d<%#ID%>.aspx">test</a>
Top
7 楼gsky()回复于 2006-01-12 08:01:30 得分 0
看看还有没有其他说法Top
8 楼hdt(倦怠)回复于 2006-01-12 08:09:16 得分 0
urlrewriter
Top
9 楼gsky()回复于 2006-01-12 09:11:04 得分 0
我就是看了微软的教程 urlrewriter 的Top
10 楼gsky()回复于 2006-01-13 08:43:47 得分 0
再期待一下Top
11 楼gsky()回复于 2006-01-13 16:33:08 得分 0
没人了解更多了吗..Top
12 楼hdt(倦怠)回复于 2006-01-13 16:44:48 得分 5
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnaspp/html/urlrewriting.aspTop
13 楼Cnapollo(旁痞)回复于 2006-01-14 12:04:54 得分 5
好象用带Link的控件难实现
我这位方法是用一个Button来代替,可以实现,你看看,大家多提意见
页面:
<style>
.LinkBtn { COLOR: #0000ff; BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline
;Border-Style:None ;CURSOR: hand
}
</style>
<script language="javascript" for="Button1" event="onmouseover">
window.status="localhost/yousite/d1.aspx";
</script>
<script language="javascript" for="Button1" event="onmouseout">
window.status="None";
</script>
<asp:Button CssClass="LinkBtn" id="Button1" runat="server" Text="Button" ></asp:Button>
后台:
private void Button1_Click(object sender, System.EventArgs e)
{
Response.Redirect("Utils1.aspx");
}
Top
14 楼Cnapollo(旁痞)回复于 2006-01-14 12:06:25 得分 0
或者将前端script注释掉。在后台加载,这样你自定义URL字符串方便点:
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
string Url="localhost/yousite/d1.aspx";
string strScript ="<script language='javascript' for='Button1' event='onmouseover'>";
strScript +="window.status='"+Url+"';</script>";
strScript +="<script language='javascript' for='Button1' event='onmouseout'>";
strScript +="window.status='None';</script>";
Page.RegisterStartupScript("WriteUrl",strScript);
}Top
15 楼sp1234(asp.net不是一个语言,是一个操作系统)回复于 2006-01-14 12:19:15 得分 1
正如 bgu(横渡) 所说,你在生成页面的时候就应该生成需要伪装成的url,然后这个url在提交到服务器的时候才被你reWrite。Top
16 楼dolfen(网海之豚(每天进步一点点))回复于 2006-01-14 20:49:08 得分 5
有个办法,重写Page的Render()
using System.IO;
using System.Text.RegularExpressions;
protected override void Render(HtmlTextWriter writer)
{
TextWriter tempWriter = new StringWriter();
base.Render(new HtmlTextWriter(tempWriter));
string str=tempWriter.ToString();
reg= new Regex(@"href=([\'|\"])?[^>]*xx.aspx?ID=(\d)([\'|\"])?",RegexOptions.IgnoreCase);
str = reg.Replace(str,@"href=$1d$2$3.aspx");
writer.Write(str);
}
Top
17 楼gsky()回复于 2006-01-14 22:36:15 得分 0
难道每个连接都要做一下 变动吗 怎么总觉得这样很麻烦 可是没有别的办法了吗?
很多网站 我鼠标放到超链接上都不是真实地址 而且超链接很多啊 我就是想弄明白这个是怎么一回事。。郁闷Top
18 楼gsky()回复于 2006-01-15 21:08:49 得分 0
继续关注Top
19 楼OSCAR_NJU(死刑犯)回复于 2006-01-15 22:40:30 得分 2
难道每个连接都要做一下 变动吗 怎么总觉得这样很麻烦 可是没有别的办法了吗?
很多网站 我鼠标放到超链接上都不是真实地址 而且超链接很多啊 我就是想弄明白这个是怎么一回事。。郁闷
============================
我想页面再多的url也就两种情况吧,
静态的url,动态的url
对于静态的,没话说,自己改,这个不会太多吧,
而动态的就更好办了,都是程序的事情了Top





