在 iis 服务器上删除 URL 中的扩展名
Posted
技术标签:
【中文标题】在 iis 服务器上删除 URL 中的扩展名【英文标题】:remove extension in URL on an iis server 【发布时间】:2014-08-21 01:16:43 【问题描述】:我的页面设置了剃须刀代码,以便在每个页面上使用一致的布局。 我不希望页面 url 与 .cshtml 标记一起显示 我怎样才能做到这一点。我使用 JQuery、javascript、html、CSS、ASP.net(网页逻辑)
前网址; http://www.site.com/page.htm
我是 ASP 和服务器端的新手。
@
Layout = "~/Shared/_Layout1.cshtml"; <!--i use a _PageStart.cshtml that contains this line for dry purpose-->
Page.title = ""; @*add pages title here*@
<!--If you want to add Page specific stylesheets Link them here with HTML tags-->
@section ExtraHeadContent
@section NavBarLinks
<!--Enter links here for the top navigation bar <a class="topnav-link" href="~/index.html">| Home</a> -->
<!--Enter the Pages HTML content here. This will be displayed in the white content div-->
如果您过去发现任何相关页面或讨论,请分享。
【问题讨论】:
使用无扩展路由? 在 IIS 中更改处理程序映射 我不知道阿什利是什么。对不起,我是服务器端的新手 您是否真的运行过任何代码来查看 URL?默认情况下,至少对于任何较新版本的 MVC 和/或 IIS URL 都没有扩展期限。 (因此 asawyer 的无扩展名路线评论).cshtml 是视图文件的扩展名,但这不应该是实际浏览网站时显示的内容 我使用的是网页逻辑而不是 mvc,是的,我已经实时运行了它。当前唯一会显示没有 .chshtml 扩展名的页面是默认主页,该主页显示“www.example.com/”,我使用剃须刀代码编写的所有其他页面都显示“www.example.com/” PageName.cshtml 【参考方案1】:ASP.NET 网页框架内的内置路由系统允许您完全省略文件扩展名。如果您请求www.yourdomain.com/YourPage
(其中YourPage 表示一个名为YourPage.cshtml 的文件),它应该默认工作。你可以在这里阅读更多信息:http://www.mikesdotnetting.com/Article/165/WebMatrix-URLs-UrlData-and-Routing-for-SEO。
至于将文件扩展名替换为.htm
,我不确定您希望通过这样做来实现。它不会改善搜索引擎优化。但是,一种选择是使用名为 WebPageRouteHandler
的 Nuget 包。我也写过:http://www.mikesdotnetting.com/Article/187/More-Flexible-Routing-For-ASP.NET-Web-Pages。单独映射每个文件可能会很痛苦,但您可以从数据库动态生成路由,或者通过循环物理文件来减少所需的代码。
【讨论】:
您的解决方案适用于 Web Matrix,但是当我在服务器上进行测试时,它给了我 404 错误。我正在使用 IIS6 服务器。你知道这是什么原因造成的吗?不需要 htm 我只需要删除友好 url 的扩展名 使用 IIS 6,需要添加通配符映射:microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/…以上是关于在 iis 服务器上删除 URL 中的扩展名的主要内容,如果未能解决你的问题,请参考以下文章
httpModules 不适用于 iis 7.5 的 url 重写/扩展少 url(给出错误 500.0)
.htaccess(500 内部服务器错误) - 删除 url 中的文件扩展名