В IIS 7 вы можете использовать Url Rewrite Module , как описано в этом блоге post .
В IIS 6 вы можете написать модуль http , который перепишет url:
public class RestModule : IHttpModule
{
public void Dispose() { }
public void Init(HttpApplication app)
{
app.BeginRequest += delegate
{
HttpContext ctx = HttpContext.Current;
string path = ctx.Request.AppRelativeCurrentExecutionFilePath;
int i = path.IndexOf('/', 2);
if (i > 0)
{
string svc = path.Substring(0, i) + ".svc";
string rest = path.Substring(i, path.Length - i);
ctx.RewritePath(svc, rest, ctx.Request.QueryString.ToString(), false);
}
};
}
}
И есть хороший пример как получить неограниченные URL-адреса в IIS 6 без использования сторонних модулей ISAPI или сопоставления с подстановочными знаками.