如何从IIS中的URL中删除.aspx

时间:2015-01-20 05:10:56

标签: asp.net .net iis iis-7 url-redirection

如何从IIS中的URL中删除.aspx? 我需要这个用于搜索引擎优化的目的,如果有人有想法那么请指导我。

3 个答案:

答案 0 :(得分:0)

要执行此操作,您需要重写URLS。我没有亲自完成,所以无法提供任何样品。但网上有大量的例子。

以下是我发现的一个简单示例:ASP.NET rewriting URLs

答案 1 :(得分:0)

查看使用System.Web.Routing RouteCollection。您在应用程序启动时设置了一系列规则(即从global.asax Application_Start调用)。您可以将无扩展名网址映射到您网站中的实际网页,并处理网页中的网址参数。

在global.asax中: -

using System.Web.Routing;

。 。

RouteCollection routes = RouteTable.Routes;

// simple route that maps /index to /index.aspx
routes.MapPageRoute("home", "index", "~/index.aspx");

// more complex route that handles parameters
routes.MapPageRoute("products-category",
                    "products/{main-category}/{category}",
                    "~/pages/product-landing.aspx");

要处理页面中的网址参数(第二个示例): -

using System.Web.Routing;

。 。

protected override void OnLoad(EventArgs e)
{
    if (!Page.IsPostBack)
    {
        string mainCategory = string.Empty,
               subCategory  = string.Empty;

        if (RouteData.Values["main-category"] != null)
        {
            mainCategory = RouteData.Values["main-category"].ToString();
        }

        if (RouteData.Values["category"] != null)
        {
            subCategory = RouteData.Values["category"].ToString();
        }

        // and then do what you need to with those parameters..

因此,在此示例中,如果有人请求http://yoursite.com/products/animals/monkeys/,那么您的main-category将是 animals ,而category将是 monkeys

答案 2 :(得分:0)

这可能是实现它的另一种方式。将其添加到web.config的处理程序部分

<add
    name="ExtensionlessUrl-ISAPI-4.0_32bit"
    path="*."
    verb="GET,HEAD,POST,DEBUG"
    modules="IsapiModule"
    scriptProcessor="%WINDIR%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll"
    preCondition="classicMode,runtimeVersionv4.0,bitness32" 
    responseBufferLimit="0" />
<add
    name="ExtensionlessUrl-ISAPI-4.0_64bit"
    path="*." 
    verb="GET,HEAD,POST,DEBUG"
    modules="IsapiModule"   
    scriptProcessor="C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll"
    preCondition="classicMode,runtimeVersionv4.0,bitness64"
    responseBufferLimit="0" />
<add 
    name="ExtensionlessUrl-Integrated-4.0" 
    path="*." verb="GET,HEAD,POST,DEBUG" 
    type="System.Web.Handlers.TransferRequestHandler" 
    preCondition="integratedMode,runtimeVersionv4.0" />