2016-07-26 86 views
4

我一直在尝试将我的主页重写为另一个在我的ASP.Net MVC应用程序中的IP地址。我在IIS中安装了URL重写和应用程序请求路由模块。我在我的web.config中设置了重写,当我更改动作类型以重定向时它完美地工作,但是一旦我将它改回重写它根本不起作用。 我已将匹配的网址更改为接受所有请求,但仍然无效。将ASP.Net MVC主页重写为另一个IP地址

<system.webServer> 
     <rewrite> 
     <rules> 
     <clear /> 
     <rule name="node" enabled="true" patternSyntax="Wildcard" stopProcessing="true"> 
      <match url="*" /> 
      <action type="Rewrite" url="http://255.255.255.255/" /> 
     </rule> 
     </rules> 
    </rewrite> 
    </system.webServer> 

好像重写过程与路由有一些冲突。我怎么能使重写的优先级更高?

+2

重写就是这样,重写url,以便您的应用程序可以更好地处理它。例如,可以将'product.myserver.com/pepsi'重写为'myserver.com/product?name = pepsi',这样您的应用程序具有值为'pepsi'的参数'name'。它不会将请求重定向到指定的url,并且不会更改客户端浏览器上写入的url。 – DPac

+0

不,我可能解释不够清楚,我期望看到http://255.255.255.255/的内容,而im在我的网站的根目录中,但它不喜欢那样。只是它跳过了这个过程。 – Behzad

+0

如果你想看到255.255.255.255的内容,那么你需要的是一个重定向。重写不会将请求重定向到指定的URL。 – DPac

回答

0

会不会有配置继承发生? 如果是的话,你可以用URL重写模块在<rewrite>节的配置是内部URL你<位置>要禁用从父应用程序的传承部分...

<location path="." inheritInChildApplications="false"> 
    <system.webServer> 
    ... 
    </system.webServer> 
</location> 
1

,并不能改写服务器的域名或IP:

IIS.NET:改写动作替换当前的URL字符串替换 字符串。替换字符串必须始终指定URL路径(例如, 示例,contoso/test/default.aspx)。

你问的不是url重写,而是反向代理。如果你有访问IIS的权限,你可以试试它的reverse proxy configuration,或者简单地创建一个HttpHandler,类似于这个example。下一个选项可以是http://urlrewriter.codeplex.com

+0

那就是我说的,如果你在IIS中为asp.net mvc应用程序配置反向代理,它不适用于主页 – Behzad

+0

你有改变,而不是反向代理。 “ Alex

+0

@Behzad,smirnov的回答是词法正确的。 **域是一个域。**如果您将域混合在同一个应用程序中,实际上您可能拥有不同的IP对同一个站点的解析。这将是一个隐式解决的重定向。 **这将是一个配置破解,不会是一个编程问题。**所以答案是完全正确的,而仍然是主题。 –