在本教程中,我们将学习在 Apache 使用 mod_rewrite
在 Ubuntu 上。
URL重写的先决条件 Apache
- 一个 Ubuntu 20.04 系统
- 带着 Apache 安装在其上的 HTTP 服务器
(在这里学习如何安装 Apache Ubuntu 上的 HTTP 服务器)
什么是 URL 重写?
URL 重写的目的是将 URL 的外观更改为更用户友好的 URL。 这种修改称为 URL 重写。
例如, 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 None
到 AllowOverride All
<Directory /var/www/> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory>
然后,重新启动 Apache HTTP 服务器通过执行来应用配置:
sudo service apache2 restart
第 3 步:创建 .htaccess 文件
现在,要创建一个 .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
模块按照上述步骤操作。
我们希望您发现这篇文章对您有所帮助。 感谢您的阅读! ?