我如何在.NET中执行此操作? http://why.does.my.head.asplode.net/我想做ytmnd where each url is a different用户生成的页面。我可能需要像指向目录这样简单的东西,所以dirname.mysite.com将重定向到http_public / userGenContent / dirname /
答案 0 :(得分:3)
我建议你使用UrlRewritingNet。您可能必须添加类似于此的规则:
<add virtualUrl="http://(.*).asplode.net/index.aspx"
rewriteUrlParameter="ExcludeFromClientQueryString"
destinationUrl="~/Users.aspx?username=$1"
ignoreCase="true" />
我无法测试这个,因为我现在在Linux机器上,但它应该工作;)。
答案 1 :(得分:2)
哈哈......
我在global.aspx中处理了Begin请求事件,因为我的url来自sql server。
为什么现在这么多人子域疯狂?
在Begin请求你可以做这样的事情(不仅仅是因为我现在不在我面前)...
request.rewriteurl( "new url" );
...这将采取任何源网址和“重定向”,而无需将响应重定向到您可以在内部使用的网址。
答案 2 :(得分:0)
一旦您有进入ASP.NET的请求,各种UrlRewriting工具将帮助您,但在此之前您需要设置IIS以将这些请求传递给您的应用程序。如果服务器上只有一个应用程序,这很简单,否则就更难了。
查看http://msmvps.com/blogs/bernard/archive/2005/03/22/39218.aspx以获取有关IIS上通配符子域的一些详细信息。
或者使用像ISAPI Rewrite那样的IIS级重写器
基本上搜索IIS通配符子域以找到大量方法。
答案 3 :(得分:0)
嗯,IIS7已经构建了url重写功能。您可以在web.config中指定规则等。但是对于IIS6,你需要ISAPI dll为你做同样的事情。我已经使用了IIRF,它运作得很好。