0

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

例如,浏览器请求http://www.mysite.com/lion,但服务器希望浏览器将位置更改为http://www.mysite.com/jungle。我知道如何做到这一点的唯一方法是让服务器发送3xx带有 URL 的状态代码jungle,然后浏览器发出一个新请求来检索它。

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

4

2 回答 2

2

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

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

RewriteEngine On
RewriteRule lion jungle [L]

当狮子被请求时,丛林的内容将被发送,没有重定向。

于 2010-12-15T08:05:46.987 回答
1

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

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

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

于 2010-12-15T08:02:44.530 回答