Web服务器是否有办法发出不需要浏览器发出第二个请求的重定向?
例如,浏览器请求http://www.mysite.com/lion
,但服务器希望浏览器将位置更改为http://www.mysite.com/jungle
。我知道如何完成此操作的唯一方法是服务器使用3xx
URL发送jungle
状态代码,浏览器会发出新请求以检索它。
服务器是否可以提供页面jungle
以响应lion
请求,并告诉浏览器“将您的网址设为http://www.mysite.com/jungle
”?
答案 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
。
如果您想通知浏览器正在加载其他页面,那么就我而言,您需要重定向。