IIS URL 重写所有入站 URL?
希望这是一个简单的问题,尽管我发现使用谷歌不可能自己回答这个问题!
我在 IIS 上有一个网站,其 URL http://www.contoso.com/ 指向 C :\www\public\
已进行强制目录重组,因此现在最初驻留在 C:\www\public\ 中的所有数据(Default.aspx、Product.aspx 等)现在都驻留在 C:\www\ public\en\ie\ - 但是,IIS 网站文档根目录仍然是 C:\www\public\
因此,本质上,我有很多指向 http://www.contoso.com/Product.aspx?id=1 (等)现在返回 404 错误 - 正确的链接现在是 http://www.contoso.com/en/ie/ Product.aspx?id=1
请考虑到我无法对目录结构或 IIS 文档根进行任何更改...因此我必须使用 URL 重写来解决此问题.
是否可以捕获对 contoso.com/* 的所有请求并将其重写到 contoso.com/en/ie/* ?
Hopefully a simple question although one I have found impossible to answer myself using the Googles!
I have a website on IIS with the URL http://www.contoso.com/ which points to C:\www\public\
There has been a forced directory restructure so now all of the data (Default.aspx, Product.aspx, etc.) that originally resided in C:\www\public\ now resides in C:\www\public\en\ie\ - however, the IIS website document root is still C:\www\public\
So, essentially, I have a lot of inbound links to http://www.contoso.com/Product.aspx?id=1 (etc.) which are now returning 404 errors - the correct link is now http://www.contoso.com/en/ie/Product.aspx?id=1
Please consider that I can make no changes to the directory structure or the IIS document root... so I must solve this issue using URL rewriting.
Is it possible to capture all requests to contoso.com/* and rewrite them to contoso.com/en/ie/* ??
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
正如 Ivo 建议的那样,使用 url 重写,您可以设置与旧 url 模式匹配的入站规则并重定向到新模式
http://learn.iis.net/page.aspx/460/using-url-rewrite-module/
As Ivo suggests, using url rewriting you can set up inbound rules that match the old url pattern and redirect to the new pattern
http://learn.iis.net/page.aspx/460/using-url-rewrite-module/
将网站的根目录从 C:\www\public\ 更改为 C:\www\public\en\ie\ ,一切都应该没问题。
如果您因任何原因无法执行此操作,请创建一个自定义 404 页面并重写其中的 url,并使用 301 重定向
请参阅:http://searchengineland.com/url-rewriting-custom-error-pages-in-aspnet-20-12234
Change the root directory of your website from C:\www\public\ to C:\www\public\en\ie\ and everything should be fine.
If you cannot do this for any reason, make a custom 404 page and rewrite to url in there and redirect with a 301
See: http://searchengineland.com/url-rewriting-custom-error-pages-in-aspnet-20-12234