我有一个 asp.net mvc 2 应用程序(使用 .net 4.0),在虚拟目录中托管时无法正确路由。我有以下简单的路由规则:
routes.MapRoute(
"Default", // Route name
"{action}", // URL with parameters
new { controller = "accounts" } // Parameter defaults
);
我正在努力解决http://mydomain.com/accounts/new http://mydomain.com/accounts/new。其中“accounts”是虚拟目录。如果我将应用程序放在 IIS 网站的根目录中,它可以正常路由http://mydomain.com/new http://mydomain.com/new,但如果我将应用程序放在虚拟目录中,则会收到 404 错误。我已经调试过,它正在执行 global.asax 并在 vdir 中配置路由。对于虚拟目录中的路由,我需要做一些特殊的事情吗?
供参考。我使用的是 vdir,因为根目录中有 wordpress。
Thanks!
另一件事是,如果我在参数默认值中指定默认操作,它将执行默认操作/控制器,但它永远不会匹配其他任何内容。
我想到了。 Wordpress(我安装在网站根目录下)配置了一些 URL 重写规则,这些规则阻止 asp.net mvc 接收除虚拟目录根目录之外的任何请求。任何超出此路径的内容都会被重写到index.php,这当然在我的mvc应用程序中不存在。
我删除了重写规则,现在一切都按预期进行。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)