MVC4 ActionLink()生成错误的URL

时间:2013-05-07 03:38:41

标签: regex perl .htaccess asp.net-mvc-4 html.actionlink

我将MVC4应用程序部署到WebForms(.NET 4.0)网站。

除了每个Html.ActionLink(...)生成错误的href="#####"链接属性外,其他所有内容似乎都很有效。

问题:
不会生成正确的网址(http://child.com/),而是生成错误的网址:http://child.com/child/

我使用以下 .htaccess 将用户从“domainRoot.com”“重定向”到域“domainChild.com:”

#
RewriteEngine On
RewriteCond %{HTTP_HOST} salonconnectiondanapoint\.com [NC]
RewriteCond %{REQUEST_URI} !salonconnection/ [NC]
RewriteRule (.*) /salonconnection/$1 [L,P]
#


文件夹结构类似于以下内容:

enter image description here

我没有修改Route.config中的默认路由。

另外,我已经阅读了这篇描述类似情况的stackoverflow question/answer,但它并没有为我提供足够的解决方法。

如果您需要查看任何代码段或有问题我可以回答,请告诉我(在评论中),以便更好地帮助我们解决这个问题,谢谢。

domainChild .com =域名

domainChild =包含第二个项目的文件夹

应用程序需要从包含文件夹名称(domainChild)开始,我试图通过在主机的控制面板中设置IIS“应用程序启动”来执行此操作(我已经处理了他们的支持和他们将我推荐给StackOverflow.com ... :/ ...来修复此重定向/网址问题)然后添加了.htaccess.htaccess尝试似乎没有用,所以我一直试图抛出任何东西(见下面的更新)。

更新
我还尝试通过一起删除.htaccess文件来完成重定向,并在父WebForms网站根域文件夹的PageLoad事件中使用以下多种变体(在MVC项目中)嵌套):

//string sname = Request.ServerVariables["SERVER_NAME"].ToString().ToUpper();
string sname = Request.ServerVariables["HTTP_HOST"].ToString().ToLower();

if (sname.Contains("domainchild"))
{
        Server.TransferRequest("~/domainChild/");
        //Response.Redirect("~/domainChild/");
        return;
}
else
{
        Response.Redirect("Default.aspx");
        return;
}

然而同样的事情发生了...用户被重定向到的url包含domainName /包含文件夹名称(例如,http://domainChild.com/domainChild)。

此更改还将“Default.aspx”附加到URL的末尾,它是MVC!

包含的文件夹名称(domainChild)无法像这样注入URL。必须有一种方法可以在包含文件夹名称启动应用程序,将文件夹“domainChild”的名称替换为“domainChild.com

我迷路了,请帮帮忙。

0 个答案:

没有答案