加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

更改ASP.NET MVC或IIS中的URL根路径

发布时间:2020-12-16 07:41:41 所属栏目:asp.Net 来源:网络整理
导读:我正在使用具有自定义URL的服务器: http://example.com/site/,您可以看到我需要更改应用程序的默认根路径(“/”)以防止404错误.使用具有出站规则的IIS重写模块似乎有效,所有html链接和引用都正确转换为查询内部网站.问题是当我的控制器中使用Redirect()或Re
我正在使用具有自定义URL的服务器: http://example.com/site/,您可以看到我需要更改应用程序的默认根路径(“/”)以防止404错误.使用具有出站规则的IIS重写模块似乎有效,所有html链接和引用都正确转换为查询内部网站.问题是当我的控制器中使用Redirect()或RedirectToAction()方法时,网站的内部名称将被删除,从而导致404.这是我的IIS出站规则:

<rewrite>
  <outboundRules>
    <rule name="Add path prefix to urls" stopProcessing="true">
      <match filterByTags="A,Form,Img,Link,Script" pattern="^/(.*)" />
      <action type="Rewrite" value="/site{R:0}" />
    </rule>
  </outboundRules>
</rewrite>

所以澄清一下:当帐户/登录重定向时,我有http://example.com/site/,它变成http://example.com/account/login而不是http://example.com/site/account/login.我想RouteConfig必须修补但我不知道如何,或者我是否可以在IIS中执行此操作.我在RouteConfig类中有以下内容:

routes.MapRoute(
    name: "SiteRoot",url: "site/{controller}/{action}",defaults: new { controller = "Home",action = "Index" }
);

routes.MapRoute(
    name: "Default",url: "{controller}/{action}",action = "Index" }
);

谢谢.

解决方法

假设问题仅针对受授权注释保护的页面,则可能需要更新/App_Start/Startup.Auth.cs文件以更改登录路径.您正在寻找LoginPath = new PathString(“/ Account / Login”),您将更改为LoginPath = new PathString(“/ site / Account / Login”),.在我测试的MVC 5启动站点中,在第28行.

在我使用重定向规则和路由配置进行测试时,正常的RedirectToActions工作正常,但是如果遇到问题,可以尝试删除“默认”路由映射,以便路由器在尝试重定向时不会选择URL结构.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读