GoDaddy Hosting将文件夹结构注入URL MVC3

时间:2014-03-05 14:24:24

标签: c# asp.net-mvc-3 web-config

我再次向这个论坛的专家寻求他们的狡猾建议。

我有一个MVC网站似乎在GoDaddy托管上运行得很好。然而,它将我的目录结构注入到url中,所以我有点担心它。

例如,我希望网址是这样的:

https://www.domain.com/c/77/instruction/True

相反,它显示为:

https://www.domain.com/folder1/subfolder/c/77/instruction/True

我用来渲染的Razor代码是Url.RouteUrl。类似的东西:

@Url.RouteUrl("ControllerName", new { objId = Model.Id, SeName = Model.SeName })

再次一切正常我只是不确定暴露的目录结构是否可取..至少它很烦人......对我好。不确定有多少人会注意到。

那么我会在网络配置中使用重写规则吗?或者我可能没有正确配置我的域名......或者只是微笑并继续前进?

您的想法非常感谢


抱歉忘了添加我的GoDaddy文件夹结构:

Root >> folder1 >> subfolder

其中子文件夹是我安装到的文件夹,刚刚确认的文件夹被配置为root。

1 个答案:

答案 0 :(得分:1)

答案就在这里 - http://blog.boyet.com/blog/blog/solution-for-asp-net-routing-on-godaddy-shared-hosting/

这不是GoDaddy的问题,而是ASP.NET文件结构。该链接更详细地解释了这一点,但是对于页面引用的简短回答

只需将以下内容添加到web.config的system.webServer元素中:

<rewrite>
  <rules>
    <rule name="Remove Virtual Directory">
      <match url=".*" />
      <action type="Rewrite" url="{R:0}" />
    </rule>
  </rules>
</rewrite>

所有这一切都是“重写”自己的URL。这会导致URL Rewrite将原始URL(没有文件夹名称的URL)添加到ServerVariable,ASP.NET MVC使用它来生成其他URL。