如何设置 URL 重写 Apache 在 Ubuntu 上?

在本教程中,我们将学习设置 URL 重写 Apache 使用 mod_rewrite 在 Ubuntu 上。

目录

URL 重写的先决条件 Apache

  • 一个 Ubuntu 20.04 系统
  • 带着 Apache 安装在上面的 HTTP 服务器
    (在这里学习如何安装 Apache Ubuntu 上的 HTTP 服务器)

什么是 URL 重写?

URL 重写的目的是将 URL 的外观更改为对用户更友好的 URL。 这种修改称为 URL 重写。

为了 example, https://example.com/form.html 可以改写为 https://example.com/form 使用 URL 重写。

不同的 Web 框架中有几个模块用于 URL 重写。
在里面 Apache HTTP 服务器, mod_rewrite 模块用于此目的,在本文中,我们将学习如何设置它。

设置 mod_rewrite 的步骤 Apache 在 Ubuntu 上

按照步骤设置 URL 重写 Apache 借助 HTTP 服务器 mod_rewrite 模块。

第 1 步:启用 mod_rewrite 模块 Apache

要启用 mod_rewrite 模块,执行以下命令:

sudo a2enmod rewrite

然后重启 Apache HTTP 服务器与 service 命令与 sudo

sudo service apache2 restart

或使用 systemctl 命令与 sudo

sudo systemctl restart apache2

现在我们有了 mod_rewrite 启用后,我们可以继续进行配置。

第 2 步:启用 .htaccess 文件的使用

一种 .htaccess 文件允许您在每个目录的基础上进行配置更改。 使用 .htaccess 而不是直接更改 Apache的配置文件会影响 HTTP 服务器的性能。 但是一个小 .htaccess 文件对性能的影响应该可以忽略不计。

Apache 建议使用 .htaccess 仅当您不允许在主服务器配置文件中进行更改或需要在每个目录的基础上进行配置更改时才使用该文件。

在我们继续之前,允许使用 .htaccess 文件,启用 AllowOverride 通过对配置进行更改 Apache 借助您最喜欢的文本编辑器的 HTTP 服务器。

sudo nano /etc/apache2/apache2.conf

在中找到以下部分 /etc/apache2/apache2.conf

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

并改变,从 AllowOverride NoneAllowOverride All

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>
AllowOverride 无允许覆盖所有

然后,重新启动 Apache HTTP 服务器通过执行以下命令应用配置:

sudo service apache2 restart

第 3 步:创建 .htacccess 文件

现在,要创建一个 .htaccess 文件在您网站的根目录中。

sudo nano /var/www/html/.htaccess

使用您喜欢的编辑器在新创建的顶部添加以下内容 .htaccess 文件:

RewriteEngine on

这将在您的网站上启用重写引擎。

第 4 步:添加 URL 重写规则

完成上述所有步骤后,我们现在可以继续在 .htaccess 文件。

出于演示目的,我们将设置一个重写规则来显示 表单.html 页面位于 https://domain.tld/form 而不是 https://domain.tld/form.html

添加重写规则之前

要添加这样的规则,请添加 RewriteRule ^form$ form.html [NC] 略低于 RewriteEngine on.htaccess 使用您喜欢的编辑器创建文件。

RewriteEngine on
RewriteRule ^form$ form.html [NC]

Save 它,现在您必须能够在 https://domain.tld/form 而不是 https://domain.tld/form.html 看到 form.html 网页

重写规则后添加重写规则后

您也可以为您网站上的其他页面进行类似设置,如果您想了解有关重写规则标志的更多信息,请访问 这里.

结论

URL 重写是一种有益的工具,可以将您的 URL 精美地呈现给用户和搜索引擎,从而总体上提高您的网站的受欢迎程度,因为它对 SEO 更友好。 设置 URL 重写很简单 Apache 使用 mod_rewrite 模块按照上面提到的步骤。

我们希望这篇文章对您有所帮助。 感谢您的阅读! ?