Apache 重写规则

Apache 重写规则

Apache 重写规则是否会自动更改所有页面的 URL 而无需编辑链接?

我尝试从 .htaccess 重写 Apache 规则,但什么也没发生,所以我想知道是否需要编辑链接。

答案1

重写规则通常用于重写请求头,并根据模式和正则表达式将请求转发到其他后端服务器,并且不(我不认为它可以,但它有点超级强大,所以谁知道......;-)用于重写正文内容。

你可以把 mod_rewrite 看作是一个映射外部字符串的工具http://myhost.com/some/path/此处到某个内部文件/var/www/html或虚拟位置server-status(或代理的外部位置,http://tomcat:8080) ETC

如果你想重写正文中的链接和 HTML 字符串,有一个名为的 apache 模块mod_substitute这很有用。如果你有旧的 Apache,还有其他 mod_replace 和 mod_perl/

如果您想替换、删除或修改标题或 cookie,mod_headers 是一个不错的选择。

(然而,这些不同的模块之间存在一些交叉,因此您可能需要更清楚您的要求才能得到更好的答案)

答案2

也许你忘了包含最重要的RewriteEngine On

mod_rewrite 不会更改页面内的链接。mod_substitute 会……但您最好确保内容不会被压缩,因为 mod_substitute 不知道如何解压缩它(您可以使用 mod_header 删除任何 Accept-Encoding 请求标头)。我对 mod_substitute 的体验一直不太好。

相关内容