我有一个网站,当人们导航到http://subdomain.mysite.com/时,它会被重写为
http://mysite.com/clientArea/Default.aspx?ID=1234
然后当人们导航到http://subdomain.mysite.com/AnythingElse.aspx时,它会被重写为http://mysite.com/clientArea/AnythingElse.aspx
问题出现在样式表中,由于某些原因它们解析不正确。
在我的代码中,我让他们像这样输入
<link rel="Stylesheet" href="css/myStyleSheet.css" type="text/css" media="screen" />
但是,当我尝试访问我的网站http://subdomain.mysite.com/并查看来源时,他们已更改为此
<link rel="Stylesheet" href="clientArea/css/myStyleSheet.css" type="text/css" media="screen" />
哪个不起作用,因为它试图从
获取资源http://subdomain.mysite.com/clientArea/css/myStyleSheet.css
它应该尝试从
获取资源http://subdomain.mysite.com/css/myStyleSheet.css
我尝试过各种各样的修复,包括使用〜等添加Page.RequestUrl,但它们都在前面添加了clientArea。这不起作用,因为我们已经在clientArea文件夹中。
对此事的任何帮助都会很棒。
以下是我的重写规则
<rule name="Remove Subdomain" enabled="true" stopProcessing="true">
<match url="^$" />
<conditions>
<add input="{HTTP_HOST}" pattern="^(?!www)subdomain\.mysite\.com$" />
</conditions>
<action type="Rewrite" url="clientArea/?ID=1234" appendQueryString="true" logRewrittenUrl="true" />
</rule>
<rule name="Everything Else" enabled="true" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTP_HOST}" pattern="^(?!www)subdomain\.mysite\.com$" />
</conditions>
<action type="Rewrite" url="clientArea/{R:0}" />
</rule>
答案 0 :(得分:0)
尝试使用URLRewriter.dll并在Global.ascx中应用以下代码
if (Request.Url.AbsoluteUri.EndsWith(".jpg") || Request.Url.AbsoluteUri.EndsWith(".gif") ||
Request.Url.AbsoluteUri.EndsWith(".png") || Request.Url.AbsoluteUri.EndsWith(".ico") ||
Request.Url.AbsoluteUri.EndsWith(".js") || Request.Url.AbsoluteUri.EndsWith(".css"))
{ }
else
{
if (!Convert.ToString(arrPath[1]).Equals("admin", StringComparison.CurrentCultureIgnoreCase))
{
if (!Convert.ToString(arrPath[1]).Equals("demo.aspx", StringComparison.CurrentCultureIgnoreCase))
{
URLRewriter.Rewriter.Process();
}
}
}
在Web配置中编写规则的其余部分并尝试。