jde*_*tor 4 .net asp.net-mvc url-rewriting
看起来.NET MVC中内置的友好路由库,它可以让我们做这样的事情.
如果我想用.NET MVC中的内置东西并不明显,我希望从www开始的url会自动重定向到使用MVC框架的非www url.
您可以使用IIS 7 URL重写模块
您可以从IIS设置它,也可以将其放在web.config以下内容中<system.webServer>:
<rewrite>
<rules>
<rule name="Canonical" stopProcessing="true">
<match url=".*" />
<conditions>
<add input="{HTTP_HOST}" pattern="^www[.](.+)" />
</conditions>
<action type="Redirect" url="http://{C:1}/{R:0}" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
Run Code Online (Sandbox Code Playgroud)
或者,您可以在以下位置进行此重定向global.asax.cs:
protected void Application_BeginRequest(object sender, EventArgs ev)
{
if (Request.Url.Host.StartsWith("www", StringComparison.InvariantCultureIgnoreCase))
{
Response.Clear();
Response.AddHeader("Location",
String.Format("{0}://{1}{2}", Request.Url.Scheme, Request.Url.Host.Substring(4), Request.Url.PathAndQuery)
);
Response.StatusCode = 301;
Response.End();
}
}
Run Code Online (Sandbox Code Playgroud)
但请记住@Sam所说的内容,请点击此处获取更多信息.
<rewrite>
<rules>
<rule name="Canonical" stopProcessing="true">
<match url=".*" />
<conditions>
<add input="{HTTP_HOST}" pattern="^([a-z]+[.]net)$" />
</conditions>
<action type="Redirect" url="http://www.{C:0}/{R:0}" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
Run Code Online (Sandbox Code Playgroud)
制作正则表达式模式以匹配您的主机并用于{C:0} 1, 2, ..., N获取匹配的组.
| 归档时间: |
|
| 查看次数: |
2057 次 |
| 最近记录: |