我再次向这个论坛的专家寻求他们的狡猾建议。
我有一个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。
答案 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。