2009-01-19 42 views
2

我正在使用Visual Studios的內置ASP.NET開發服務器(VWD)在開發過程中測試我的網站。如何使用Visual Web Development服務器配置無擴展名的URL?

我想這個ASP.NET網站使用無擴展名的網址(網頁不需要aspx擴展名)。通常我會在IIS中配置一個自定義的404,它指向一個ASPX頁面。我如何與VWD做到這一點?

P.S.這不是一個ASP.NET MVC網站。

回答

1

沒有什麼特別的你需要做的。只需從ASPX頁面文件中刪除.aspx擴展名,它就可以在VWD中正常工作。 Visual Studio設計人員可能會抱怨說沒有構建提供程序註冊擴展名,但您可以忽略它。然後,你可以參考頁無擴展名:

http://localhost:2181/Default 

<%@ Page Language="C#"%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" > 
<head runat="server"> 
    <title>Untitled Page</title> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
    Hello World 
    </div> 
    </form> 
</body> 
</html> 
2

這是一個使用UrlRewritingNet的Web.Config的例子。這樣做可以讓你無需編寫任何HttpModule或類似的東西來進行擴展重寫。

(全文here

注:這個,因爲它是使用web.config中的system.webServer部分需要IIS7。


<configSections> 
    <section name="urlrewritingnet"  
      restartOnExternalChanges="true"  
      requirePermission="false"  
      type="UrlRewritingNet.Configuration.UrlRewriteSection, UrlRewritingNet.UrlRewriter" /> 
</configSections> 

<system.webServer> 
    <modules runAllManagedModulesForAllRequests="true"> 
     <add name="UrlRewriteModule" type="UrlRewritingNet.Web.UrlRewriteModule, UrlRewritingNet.UrlRewriter" /> 
    </modules> 
</system.webServer> 


<urlrewritingnet rewriteOnlyVirtualUrls="true"  
       contextItemsPrefix="QueryString"  
       xmlns="http://www.urlrewriting.net/schemas/config/2006/07"> 
    <rewrites> 
     <!--Enable HTM(L) Extensions--> 
     <add name="pageHTML"  
      virtualUrl="^~/(.+).htm(.*)"  
      redirectMode="Permanent" 
      rewriteUrlParameter="ExcludeFromClientQueryString"  
      destinationUrl="~/$1.aspx"  
      ignoreCase="true" /> 
     <!--Fix the WebResource JS Error--> 
     <add name="WebResourceFix"  
      virtualUrl="^~/WebResource.axd(.*)" 
      rewriteUrlParameter="IncludeQueryStringForRewrite"  
      destinationUrl="~/WebResource.axd$1"  
      ignoreCase="true"/> 
     <!--Fix the ScriptResource JS Error--> 
     <add name="ScriptResource"  
      virtualUrl="^~/ScriptResource.axd(.*)" 
      rewriteUrlParameter="IncludeQueryStringForRewrite"  
      destinationUrl="~/ScriptResource.axd$1"  
      ignoreCase="true"/> 
     <!--Allow Extensionless Page Extensions--> 
     <add name="pageExtensionless" 
      virtualUrl="^~/(.+)$" 
      redirectMode="Permanent" 
      rewriteUrlParameter="ExcludeFromClientQueryString" 
      destinationUrl="~/$1.aspx" 
      ignoreCase="true" /> 
    </rewrites> 
</urlrewritingnet> 

1

所有你需要做的就是添加的模塊中你的web.config中兩個不同的地方......

<system.web> 
    <pages theme="Default" /> 
    <httpModules> 
     <add name="UrlRewriteModule" type="UrlRewritingNet.Web.UrlRewriteModule, UrlRewritingNet.UrlRewriter" /> 
    </httpModules> 
</system.web> 


<system.webServer> 
    <modules runAllManagedModulesForAllRequests="true"> 
     <remove name="UrlRewriteModule"/> 
     <add name="UrlRewriteModule" type="UrlRewritingNet.Web.UrlRewriteModule, UrlRewritingNet.UrlRewriter" /> 
    </modules> 
</system.webServer> 

第一個是將它添加到您的httpModules中,將在您的VS Dev環境中工作,第二個將用於IIS7

相關問題