在 Apache 2 Linux 服务器上启用 .htaccess
使用 Apache Web 服务器时,.htaccess
文件(也称为“分布式配置文件”)用于在每个目录的基础上指定配置,或者更一般地用于修改 Apache Web 服务器的行为无需直接访问虚拟主机文件(这通常是不可能的,例如在共享主机上)。为了使这些 .htaccess 文件发挥作用,我们必须首先在 Apache 配置中启用相关设置。
在本教程中,我们将了解如何在 Linux 系统的 Apache 2 上启用 .htacces
。您还将了解如何禁用它,以防您稍后决定关闭该设置。
在本教程中您将学习:
.htaccess
文件有什么用?如何在 Apache 中启用
.htaccess
如何在 Apache 中禁用
.htaccess
在 Apache 2 Linux 服务器上启用 .htaccess 分步说明
.htaccess
文件被放置到一个目录中,并允许管理员指定适用于该目录的指令。该文件可用于拒绝或允许对目录的访问、限制对 IP 或通过密码的访问、设置重定向、重写 URL 等。当然,此配置也可以在虚拟主机配置文件本身中完成,但有时使用 .htaccess
文件更实用,或者是唯一可用的解决方案。
按照下面的分步说明启用或禁用 Apache 的 .htaccess
文件。
首先打开 Apache 虚拟主机文件。我们将只编辑名为
000-default.conf
的默认名称,但您的名称可能不同。在此步骤中使用 nano 或您喜欢的文本编辑器。$ sudo nano /etc/apache2/sites-enabled/000-default.conf
可以在
.htaccess
文件中使用的指令集是通过
内的AllowOverride
指令在主站点配置中建立的节;例如,为了允许使用所有可能的指令,我们会编写如下内容:<Directory /var/www/html> AllowOverride All </Directory>
这些说明将应用于指定目录及其所有子目录中找到的
.htaccess
文件。为了使更改生效,我们需要重新启动 Apache 服务器。在这样做之前我们还要检查一下语法错误:
$ sudo apachectl configtest Syntax OK $ sudo systemctl restart apache2
接下来,在前面指定的目录中创建
.htaccess
文件,并在其中写入规则。例如:$ sudo nano /var/www/html/.htaccess
我们将在文件中编写重定向规则作为示例。
Redirect permanent / https://example.com
保存更改并在完成后退出文件。
这里的所有都是它的。导航到您的网站,确保
.htaccess
文件中的说明按预期工作。如果不是,我们有一些故障排除建议,您可以在下面查看。如果稍后需要禁用
.htaccess
文件,可以删除我们上面添加的节,或者使用以下配置显式关闭.htaccess
文件的解析:<Directory /var/www/html> AllowOverride none </Directory>
.htaccess 文件故障排除
如果您的规则未按预期运行,您可以尝试以下一些操作。
确保
.htaccess
文件具有适当的权限。$ sudo chown www-data.www-data /var/www/html/.htaccess
确保您已启用必需的模块。例如,在上面的步骤中,我们编写了一个重定向规则来测试我们的
.htaccess
文件。该特定配置将要求我们启用modalias。$ sudo a2enmod alias
确保您的
.htaccess
文件位于正确的目录中。它必须位于您在 Apache 虚拟主机中配置的目录或其子目录之一中。
结束语
在本教程中,我们了解了如何在 Linux 系统上启用和禁用 Apache 服务器的 .htaccess
文件。此配置文件允许在每个目录的基础上应用简单且精细的规则,但比将规则目录应用到 Apache 虚拟主机文件要慢。尽管如此,在共享托管或其他情况下,它被证明是应用简单配置的最可行的方法。