首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >重定向URL

重定向URL
EN

Stack Overflow用户
提问于 2009-05-06 08:38:00
回答 3查看 416关注 0票数 2

如何重定向至www.mysite.com/picture/some-picture-title/12345?现在,"/ picture /12345“在picture.aspx?picid=12345上被重写了,对于第二种形式的url (图片/图片标题/12323到picture.aspx?picid12323)也是一样的。我不能仅仅把第一种形式的url重写为第二种形式,因为我必须从数据库中获取图片标题。

首先,问题看起来很简单,但是考虑到有时间来解析每个请求,那么正确的做法是什么?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-05-06 08:42:41

由于不知道什么是ASP.NET技术(Webforms或MVC),我将假定它是WebForms。

您可以查看URL重定向并构建自己的规则。你这样做一次,只是为了应用于所有看起来像你想要的链接。

Scott Guthrie有一个关于它的very nice post

如果你想要的是重定向到一个新的地址,这也很简单。

首先,让我们重用代码,因此您将首先重定向到一个名为redirectme.aspx的普通页面

在该页面中,您可以使用ServerVariables或在QueryString中传递REFERER地址,这是您选择,然后您可以附加标题名称,如下所示:

代码语言:javascript
复制
private void Redirect()
{
    // get url: www.mysite.com/picture/12345
    string refererUrl = Request.ServerVariables["HTTP_REFERER"];    // using the ServerVariables or Request.UrlReferrer.AbsolutePath;
    //string refererUrl = Request.QueryString["url"];                 // if you are redirecting as Response.Redirect("redirectme.aspx?" + Request.Url.Query);

    // split the URL by '/'
    string[] url = refererUrl.Split('/');

    // get the postID
    string topicID = url[url.Length-1]; 

    // get the title from the post
    string postTitle = GetPostTitle(topicID);

    // redirect to: www.mysite.com/picture/some-picture-title/12345
    Response.Redirect(
        String.Format("{0}/{1}/{2}",
            refererUrl.Substring(0, refererUrl.Length - topicID.Length),
            postTitle,
            topicID));
}

要节省服务器上的时间,请在first Page事件上执行此操作

代码语言:javascript
复制
protected void Page_PreInit(object sender, EventArgs e)
{
    Redirect();
}
票数 3
EN

Stack Overflow用户

发布于 2009-05-06 10:40:11

如果您运行的是IIS7,那么(对于webforms和MVC) URL重写模块(http://learn.iis.net/page.aspx/460/using-url-rewrite-module/)是值得一看的。

支持模式匹配和正则表达式的重定向,声明它们是临时的还是永久的,而且它们都可以通过控制台进行管理。为什么要在没有必要的情况下编写代码呢?

票数 1
EN

Stack Overflow用户

发布于 2009-05-06 08:48:12

我假设你需要一个通用的模式,而不仅仅是一次性的解决方案。也就是说,你需要它在12345和12346下工作&不管其他的ID是什么。您可能正在寻找URLRedirection并应用正则表达式来标识将重定向到目标URI的源URI

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/828633

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档