【发布时间】:2021-04-08 01:28:30
【问题描述】:
我试图了解重写和重定向之间的区别,但我有点困惑。我在某些地方读到不同之处在于“重定向规则指示客户端(通常是浏览器)切换 URL 并导航到规则的目标。重定向规则通常用于您想要重定向的旧路径给新的。
相比之下,重写规则不会更改原始 URL;它只是在原始路径上提供规则目标的内容。浏览器无法判断内容是从不同的路径或 URL 提供的,因此可以在您网站的任何其他路径上显示来自不同路径或 URL 的内容。 "
但是查看 Apache 服务器,文档是这样说的: “mod_rewrite 模块使用基于规则的重写引擎,基于 PCRE 正则表达式解析器,动态重写请求的 URL。默认情况下,mod_rewrite 将 URL 映射到文件系统路径。但是,它也可以用于重定向一个 URL 到另一个 URL,或调用内部代理获取。”
那么在这种情况下可以重写功能作为重定向,这样 URL 在浏览器中会出现变化吗?还是总是这样,如果它是重写,浏览器 url 永远不会改变?如果您使用 IIS 与 Apache 服务器,答案是否不同?
【问题讨论】:
-
您编写的规则通常被称为“重写规则”,但规则是否会导致重定向(对浏览器的 30 倍 HTTP 响应)或简单的重写(服务器端内部 URL 更改和进一步处理) 取决于你到底写了什么。请做一些实验来弄湿你的手,因为仅仅靠文字并不能帮助你理解太多。
标签: apache tomcat iis proxy reverse-proxy