Pamata autentifikācijas ieviešana ASP NET Web API

Es tikko nomainīju savu emuāru veidošanas programmatūru, un tagad man ir problēma, ka es vēlos novirzīt savu veco importēto emuāra ziņu uz jauno URL modeli.

Mans vecais modelis izskatās šādi:

www.domain.tld/blog/post/2011/03/02/my-blog-post.aspx 

Tagad es vēlos novirzīt šo URL uz:

www.domain.tld/blog/my-blog-post 

Kā es varu to izdarīt, izmantojot Web.config HTTP 301 Moved Permanently ziņa? Es tikko atradu risinājumus viena URL novirzīšanai, bet ne ar dinamisko vietturi. Man ir jānoņem gada, mēneša un dienas daļa no URL un pēc tam jānogriež faila paplašinājums no ziņas nosaukuma.

Es nācu no Blogengine.Net un pārgāju uz Funnelweb. Esmu koplietojis tīmekļa vietu sistēmā Windows Server 2008, tāpēc man ir tikai piekļuve FTP.

Paldies par jebkuru padomu

Risinājums:

Pievienojiet to blokam Application_BeginRequest:

UriBuilder uri = new System.UriBuilder(Context.Request.Url); Regex r = new Regex(@'^/blog/post/\d+/\d+/\d+/([A-Za-z0-9\-]+)'); Match m = r.Match(uri.Path); if (m.Success) { String postName = m.Groups[1].ToString(); uri.Path = 'blog/' + postName; Response.Status = '301 Moved Permanently'; Response.AddHeader('Location', uri.ToString()); Context.ApplicationInstance.CompleteRequest(); } 

Lūdzu, dariet man zināmu, vai jums ir kādi uzlabojumi.

  • Vai varat pievienot emuāru un tīmekļa servera programmatūru, kuru izmantojat? Vai jums ir piekļuve čaulai?
  • Protams, es pievienoju šo informāciju.

Es nezinu, kā to izdarīt web.config (Es nezinu, vai tas ir iespējams, vai nē)

Bet es tiešām zinu, kā to izdarīt Global.asax

 protected void Application_BeginRequest(object sender, EventArgs e) { UriBuilder uri = new System.UriBuilder(Context.Request.Url); if (uri.Path == '/blog/post/2011/03/02/my-blog-post.aspx') uri.Path = '/blog/my-blog-post'; Response.Status = '301 Moved Permanently'; Response.AddHeader('Location', uri.ToString()); Context.ApplicationInstance.CompleteRequest(); } 

Dinamiskajā daļā jums ir jāizmanto Regex

ja (! Regex.IsMatch (url.Path, @ "^ / blog / post / \ d + / \ d + .. piedodiet, jāiet, atgriezīšos vēlāk

strādāja par jums: Charles Robertson | Vēlies ar mums sazināties?