服务器上“mod_rewrite”和“.htaccess”之间的关系

服务器上“mod_rewrite”和“.htaccess”之间的关系

作者:服务器    浏览次数:187    2021-07-08 16:21:20

在看租用服务器公司的“常见问题”时,经常会看到“我可以使用mod_rewrite吗?”这样的问题。

如果您是服务器初学者,则无需担心,但我想很多人都想知道它是什么。因此,这里我们将解释“mod_rewrite”及其配置文件“.htaccess”。

什么是 mod_rewrite

目前,租赁服务器行业的大多数操作系统都使用基于 Linux 或 Unix 的操作系统(部分服务使用 Windows 服务器)。在这个 Linux / 类 Unix 操作系统上运行的最典型的 Web 服务器称为 Apache。

而“mod_rewrite”就像是为这个 Apache 添加功能的一部分。“mod”部分是“module”的缩写,除了“mod_rewrite”之外,还有CGI执行所需的“mod_cgi”、显示服务器状态的“mod_status”等各种模块。

那么“mod_rewrite”起到什么作用呢?它是一个“重写”网站URL的模块。

最常见的用法是“http://example.com/-contents.html ”当URL “http://example.com/-contents.html”进行访问。它用于重定向处理,如跳至。

另外,近年来使用量不断增加的WordPress,可以通过设置永久链接结构来改变显示URL的方式,但这也是在后台使用“mod_rewrite”进行处理的。

换句话说,问题“我可以使用 mod_rewrite 吗?”与问题“我可以重定向或重写 URL 吗?”几乎相同的含义。 * 还有其他使用mod_rewrite的方法,但是在共享服务器的情况下,我认为从上面的角度来看没有问题。

什么是.htaccess

上面提到的“mod_rewrite”以文本格式描述了名为“httpd.conf”的文件中的实际设置。

但是,在多用户的共享服务器上,让用户直接设置“httpd.conf”是非常危险的。错误配置甚至可能导致服务器上的所有用户无法访问网站。

这就是使用名为“.htaccess”的文件的地方。这也是用于以文本格式描述重定向和 URL 重写设置,但它与 httpd.conf 有很大不同。

因为 .htaccess 仅适用于它所在的目录及其下方(子目录)。因此,如果是共享服务器,可以让其他用户编辑每个用户目录下的.htaccess,以免影响其他用户。

即使租用服务器端回答“可以使用mod_rewrite”,用户一般使用“.htaccess”进行设置(除非有VPS等root权限),是一个目标。