在没有浏览器发出第二个请求的情况下重定向到新URL?

时间:2010-12-15 07:57:00

标签: http redirect webserver http-status-code-302 http-redirect

Web服务器是否有办法发出不需要浏览器发出第二个请求的重定向?

例如,浏览器请求http://www.mysite.com/lion,但服务器希望浏览器将位置更改为http://www.mysite.com/jungle。我知道如何完成此操作的唯一方法是服务器使用3xx URL发送jungle状态代码,浏览器会发出新请求以检索它。

服务器是否可以提供页面jungle以响应lion请求,并告诉浏览器“将您的网址设为http://www.mysite.com/jungle”?

2 个答案:

答案 0 :(得分:2)

是的,它被称为URL重写。 Apache和IIS都有允许这样做的模块。

对于Apache,在.htaccess文件或虚拟主机中的httpd.conf中:

RewriteEngine On
RewriteRule lion jungle [L]

请求狮子时会发送丛林的内容,而不会重定向。

答案 1 :(得分:1)

在ASP.NET中,您可以使用Server.Transfer()。这会导致为当前请求返回不同的页面。

请注意,浏览器不知道发生了这种情况。即使您看到来自http://www.mysite.com/lion的内容,它仍会在地址栏中显示http://www.mysite.com/jungle

如果您想通知浏览器正在加载其他页面,那么就我而言,您需要重定向。

相关问题