یه بار برای همیشه، فرانت‌ اند رو اصولی یاد بگیر! یه بار برای همیشه، فرانت‌ اند رو اصولی یاد بگیر!
🎯 ثبت نام
بستن تبلیغات
تسلط کامل بر سی‌شارپ با یک دوره پروژه‌محور

یادگیری سی شارپ از مفاهیم پایه تا پروژه محور: شی‌گرایی، کار با SQL و LINQ، ORMها (Entity Framework)، ساخت پروژه مدیریت رستوران با گزارشات حرفه‌ای و امکانات کامل!

مشاهده بیشتر
تسلط جامع بر MVC Core برای توسعه وب حرفه‌ای

یادگیری MVC Core از مبانی تا پیشرفته: شی‌گرایی، Routing، Entity Framework، امنیت، تست یونیت، Razor، Ajax، و پروژه‌های کاربردی! یک دوره کامل برای تسلط بر توسعه وب با ASP.NET Core. به صورت حضوری و آنلاین!

مشاهده بیشتر

آموزش بازنویسی URL در ASP.Net MVC Core

آموزش بازنویسی URL در ASP.NET Core 2.0

Problem

چگونگی بازنویسی URL در ASP.NET Core پیاده سازی. کنیم.

Solution

در فایل Startup ، RewriteOptions و middleware برای بازنویسی URL پیکربندی می کنیم(configure).

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public void Configure( 
          IApplicationBuilder app, 
          IHostingEnvironment env) 
      
          var rewrite = new RewriteOptions() 
              .AddRedirect("films", "movies"
              .AddRewrite("actors", "stars", true); 
   
         app.UseRewriter(rewrite); 
   
          app.Run(async context => 
          
              var path = context.Request.Path; 
              var query = context.Request.QueryString; 
              await context.Response.WriteAsync($"New URL: {path}{query}"); 
          }); 
      
<button></button>

اجرا کنید و به /films بروید. شما تغییر مسیر را متوجه خواهید شد.

آموزش Asp.net Core

اجرا کنید و به /actors بروید. شما تغییر مسیر را متوجه خواهید شد.

آموزش Asp.net Core

Discussion

URL Rewritingدرباره تغییر URL درخواست شده بر اساس قوانین سفارشی است تا آدرس را از منابع زیر جدا کند. این مسئله می تواند به دلایل امنیتی مانند SEO، user-friendly URL و تبدیل HTTP به HTTPS و غیره باشد.

هنگامی که شما قادر به استفاده از ویژگی های بازنویسی سرورهای وب نیستید (IIS, Apache, Nginx) ASP.NET Core یک گزینه متناوب را فراهم می کند، به عنوان مثال، Response Rewrite middleware.عملکرد و ویژگی های آن با ویژگی های بازنویسی سرور برابری نمی کند.

بازنویسی middleware قادر به انجام هر دو تغییر مسیر و بازنویسی است.

Redirect

این عملیات در client-side است و مانند این کار می کند:

  1. Client در خواست یک resource می کند برای مثال /films.
  2. سرور به طور محلی به مکان جدید نقشه می دهد برای مثال /stars و return 200(OK)
  3. Clientهیچ چیزی در مورد این فرایند داخلی نمی داند و هنوز URL درخواست شده را در نوار آدرس مشاهده می کند.

Rules

قوانین Redirect و Rewrite در واقع Regular Expressions هستند، جزئیات آن را می توانید در بخش "Useful Links" در زیر پیدا کنید.

Custom Rules

شما همچنین می توانید قوانین سفارشی را با ایجاد یک کلاس و اجرای رابط IRule ایجاد کنید.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
public class MoviesRedirectRule : IRule 
  
      private readonly string[] matchPaths; 
      private readonly PathString newPath; 
   
      public MoviesRedirectRule(string[] matchPaths, string newPath) 
      
          this.matchPaths = matchPaths; 
          this.newPath = new PathString(newPath); 
      
   
      public void ApplyRule(RewriteContext context) 
      
          var request = context.HttpContext.Request; 
   
          // if already redirected, skip 
          if (request.Path.StartsWithSegments(new PathString(this.newPath))) 
          
              return
          
   
          if (this.matchPaths.Contains(request.Path.Value)) 
          
              var newLocation = $"{this.newPath}{request.QueryString}"
   
              var response = context.HttpContext.Response; 
              response.StatusCode = StatusCodes.Status302Found; 
              context.Result = RuleResult.EndResponse; 
              response.Headers[HeaderNames.Location] = newLocation; 
          
      
  
<button></button>

قانون سفارشی می تواند به RewriteOptions اضافه شود.

1
2
3
4
5
var rewrite = new RewriteOptions() 
          .Add(new MoviesRedirectRule( 
                  matchPaths: new[] { "/films", "/features", "/albums" }, 
                  newPath: "/movies")); 
<button></button>

شما می توانید Source Code از لینک زیر دانلود کنید.

1396/08/10 3473 1486
رمز عبور : tahlildadeh.com یا www.tahlildadeh.com
نظرات شما

نظرات خود را ثبت کنید...