子域URL重写问题

时间:2011-05-26 15:45:44

标签: iis url-rewriting

至少两个月我一直在摸不着头脑。我在我们的网站有一个分类广告部分有SEO友好的URL我想重写这些网址。我不确定问题是否与每个区域的子域相关。 URL可能如下所示:

这些是工作网址:

http://milwaukee.storeboard.com/classifieds/for-sale/business/make-incredible-income-while-growing-your-local-economy/425

我想让它在我们的服务器上转到这个地址:

http://milwaukee.storeboard.com/classifieds/viewad.asp?ClassAdID=425

我在web.config文件中使用以下代码...但无论我尝试什么变化,我都无法让它工作..

<rule name="Classifieds Ad" stopProcessing="true">
 <match url="^http://([^/]+)/classifieds/.*?(\d+)$" />
  <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
    <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
    <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
  </conditions>
<action type="Rewrite" url="http://{R:1}/classifieds/viewad.asp?ClassAdID={R:2}" />

此时第一个链接工作的唯一原因是因为我使用我的404错误页面来处理请求,然后通过MSXML2.ServerXMLHTTP.6.0调用页面,但这是不可靠的并且可以超时,尤其是在重度时用法。我想删除此方法并使用快速IIS URL重写。

我非常感谢您提供的任何帮助

1 个答案:

答案 0 :(得分:0)

尝试以下规则

<rule name="Classifieds Ad" stopProcessing="true">
 <match url="^classifieds/.*?/(\d+)$" />
 <conditions>
  <add input="{HTTP_HOST}" type=”Pattern” pattern="^(.*)$">
 </conditions>
<action type="Rewrite" url="{C:0}/classifieds/viewad.asp?ClassAdID={R:1}" />