IIS7& 301 重定向 - 文件夹到文件
我们使用 IIS7 和 ASP.NET 3.5。
我们已经用新页面更新了我们的网站。现在,互联网上有许多链接指向我们的网站,但是由于我们新网站的目录结构发生了变化,其中许多链接现在已损坏。
我需要有多个请求,301重定向到“新页面”。许多旧页面只是目录 URL,例如:
/services/softwaredevelopment
/products/geographicdata
/sitemap
/company/termsofuse
我在 Global.asax 文件中编写了一些代码来捕获 url、解析它们并重定向它们。但是,当没有文件引用 (.aspx) 时,我的 ASP.NET 应用程序不会捕获 URL。
看来,这些重定向需要在 IIS7 中创建。
现在,上面的 url 位于目录级别(它们不直接请求实际的 .aspx 页面)...我可以使用虚拟目录将“目录”请求重定向到另一个“目录”...但我无法重定向对实际 .aspx 文件的目录请求
以下是我需要进行的一些重定向类型:
==========
旧:/services/softwaredevelopment
重定向到:/services/custom-software-development。 aspx
============
旧:/sitemap
重定向到:/sitemap.aspx
============
旧:/company/termsofuse
重定向到:/company/termsofuse。 aspx
=============
旧:/company/careers
重定向到:/company/careers.aspx
=============
旧:/services/
重定向到: /services/custom-software-development.aspx
=============
有人可以阐明如何实现这一点吗?如果您有任何疑问,请告诉我。非常感谢您的帮助。
蒂姆
We're using IIS7 and ASP.NET 3.5.
We have updated our website with new pages. Now, there are many links on the internet pointing to our website, however many of those links are now broken due to a change in our directory structure for our new website.
I need to have a number of requests, 301 redirected to the "new page." Many of the old pages are simply directory URL's such as:
/services/softwaredevelopment
/products/geographicdata
/sitemap
/company/termsofuse
I have written some code in the Global.asax file to catch the url's, parse them out, and redirect them. However, when there is no file reference (.aspx), the URL's are not caught by my ASP.NET application.
It seems then, that these redirects need to be created in IIS7.
Now, the urls above are at a directory level (they are not directly requesting an actual .aspx page)... I can redirect a 'directory' request to another 'directory' by using virtual directories.... But I cant redirect a directory request to an actual .aspx file
Here are some of the types of redirects I need to make:
==========
Old: /services/softwaredevelopment
redirect to: /services/custom-software-development.aspx
============
Old: /sitemap
redirect to: /sitemap.aspx
============
Old: /company/termsofuse
redirect to: /company/termsofuse.aspx
=============
Old: /company/careers
redirect to: /company/careers.aspx
=============
Old: /services/
redirect to: /services/custom-software-development.aspx
=============
Can someone shed some light on how to accomplish this? Please let me know if you have any questions. Many thanks for your help.
Tim
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
一种快速但肮脏的选择是在您列出的文件夹中创建 default.aspx 重定向页面。例如,要处理 /services/softwaredevelopment,请在 /services/softwaredevelopment/default.aspx 中创建一个文件 default.aspx,其中包含以下内容:
此解决方案仅在只有少数重定向的情况下才实用,因为它会使您的项目中的代码文件变得混乱做的很少。对于大量重定向,更好的解决方案是使用 IIS 7 的 原生 URL 重写器。
One quick and dirty option is to create default.aspx redirect pages in the folders you have listed. For example, to handle /services/softwaredevelopment, create a file default.aspx at /services/softwaredevelopment/default.aspx with the following:
This solution is only practical if there are only a few redirects, as it clutters your project with code files that do very little. A better solution for a large number of redirects is to use IIS 7's native URL rewriter.
查看“Windows Server 2008 上 IIS 7 中的 HTTP 重定向”http://www. trainsignaltraining.com/iis7-redirect-windows-server-2008
您应该能够通过配置 IIS 而不是编码来完成大多数类型的重定向。
Check out "HTTP Redirection in IIS 7 on Windows Server 2008" http://www.trainsignaltraining.com/iis7-redirect-windows-server-2008
You should be able to do most kind of redirect by configuring IIS rather than coding.