نحوه اجباری کردن استفاده از WWW در ASP.NET MVC
نویسنده: وحید نصیری
تاریخ: ۱۳۹۱/۰۹/۰۱ ۲۱:۵
آدرس: www.dntips.ir
| مطالب | ۳۶۹۴ |
| نویسندگان | ۲۷۶ |
| گروههای مطالب | ۱۰۲۴ |
| نقشههای راه | ۱۱۹ |
| دورهها | ۱۴ |
| اشتراکها | ۱۷۹۱۴ |
using System.Web.Mvc;
namespace WebToolkit
{
/// <summary>
/// Ensure all of the asp.net mvc urls have www.
/// </summary>
public class MandatoryWww : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
if (!filterContext.RequestContext.HttpContext.Request.IsLocal)
{
string url = filterContext.RequestContext.HttpContext.Request.Url.AbsoluteUri.ToLowerInvariant();
if (!url.Contains("www"))
{
url = url.Replace("http://", "http://www.");
url = url.Replace("https://", "https://www.");
filterContext.Result = new RedirectResult(url, true);
}
}
base.OnActionExecuting(filterContext);
}
}
}
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new MandatoryWww());
}
Response.RedirectPermanent
<system.webServer>
<rewrite>
<rules>
<rule name="Enforce WWW" patternSyntax="ECMAScript" stopProcessing="true">
<match url=".*" />
<conditions>
<add input="{CACHE_URL}" pattern="^(.+):\/\/(?!www\.)(.*)" />
</conditions>
<action type="Redirect" url="{C:1}://www.{C:2}" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
</system.webServer> HTTP Error 500.50 - URL Rewrite Module Error.
The expression "{C:1}://www.{C:2}" cannot be expanded. <rule name="Enforce WWW" patternSyntax="ECMAScript" stopProcessing="true">
<match url=".*" />
<conditions>
<add input="{CACHE_URL}" pattern="^(.+):\/\/(?!www\.)(.*)" />
<add input="{HTTP_HOST}" pattern="localhost" negate="true" />
</conditions>
<action type="Redirect" url="https://www.dntips.ir/{R:0}" redirectType="Permanent" />
</rule> HTTP Error 500.19 - Internal Server Error Error Code 0x8007000d
127.0.0.1 www.localhost