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

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

服务器是否有可能交付页面 jungle 回应 lion 请求,然后告诉浏览器“将您的URL设置为 http://www.mysite.com/jungle"?

有帮助吗?

解决方案

是的,这称为URL重写。 Apache和IIS都有允许此功能的模块。

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

RewriteEngine On
RewriteRule lion jungle [L]

当请求狮子时,将发送丛林的内容,而无需重定向。

其他提示

在ASP.NET中,您可以使用server.transfer()。这导致返回其他页面以供当前请求。

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top