迹忆客 专注技术分享

当前位置:主页 > 学无止境 >

如何在 Ubuntu 18.04 VPS 或专用服务器上启用 Apache Mod_Rewrite

作者:迹忆客 最近更新:2023/01/06 浏览次数:

Mod_rewrite 是一个强大的 Apache 模块,提供 URL 操作能力。 复杂的功能允许网站管理员重写 URL,这是许多内容管理系统编码(如 WordPress)中的常见做法。

Mod_rewrite 以翻译动态网站中人类可读的 URL 而闻名。 这使得 URL 在网站中看起来更干净、更友好。

在本篇文章中,我们将介绍在 Ubuntu 18.04 VPS 上运行的 Apache 服务器上启用 mod_rewrite 的步骤。

先决条件

  1. Ubuntu 18.04 VPS
  2. 具有 sudo 权限的非 root 用户
  3. Apache

步骤1: 启用 mod_rewrite

我们可以使用 a2enmod 命令启用任何 Apache 模块。 因此,在 Ubuntu 18.04 服务器上运行以下命令:

$ sudo a2enmod rewrite

如果该模块已在我们服务器上启用,我们将收到一条警告消息。

对其配置进行任何更改后,我们必须重新启动 Apache。 为此,请在终端窗口中键入以下命令:

$ sudo systemctl restart apache2

我们的服务器现在已准备好接受重写规则。

步骤2:设置服务器以接受 .htaccess 文件

我们可以直接在 Apache 的配置文件中设置 URL 重写规则。 但是,建议将规则保存在每个网站的 .htaccess 文件中。 大多数内容管理系统都依赖于 .htaccess 文件,它是在安装应用程序后默认创建的。

默认情况下,Apache 不允许使用 .htaccess 文件,因此我们需要通过添加以下代码来编辑每个网站的虚拟主机文件的配置:

<Directory /var/www/html>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Require all granted
</Directory>

例如,我们可以使用 nano 编辑器编辑 Apache 附带的默认虚拟主机,方法是键入以下命令:

$ sudo nano /etc/apache2/sites-available/000-default.conf

然后将上面的文本复制粘贴到 </VirtualHost> 结束标记之前。 请记住按 CTRL + X 保存文件,然后按 Y 和 Enter

然后,重新启动 Apache 以使更改生效:

$ sudo systemctl restart apache2

步骤3:Mod-rewrite 语法

基本的 Apache mod_rewrite 语法包含以下部分:

RewriteRule 模式替换 [标志]

  • RewriteRule - 我们规则的指令。
  • Pattern - 这是一个正则表达式(Regular Expression),匹配用户在浏览器中输入的内容。
  • Substitution - Apache 服务器应调用的实际 URL 路径。
  • Flag - 修改规则如何工作的可选参数。

步骤4:创建示例 .htaccess 文件

我们现在将在默认网站的根目录下创建一个示例 .htaccess 文件来测试 mod_rewrite。 为此,请键入以下命令

$ sudo nano /var/www/html/.htaccess

每个 mod_rewrite 规则都必须带有命令 RewriteEngine on。 所以你需要在文件的顶部输入这个。

RewriteEngine on

接下来,我们将重写一条规则,如果用户请求 URL http://wwwjiyik.com/contact_us,则将用户重定向到“contact_us.html”页面

所以我们添加以下规则:

RewriteRule ^contact_us$ contact_us.html [NC]

在上面的规则中,“contact_us”是应该匹配并重定向到我们的替换路径“contact_us.html”的模式。 命令 [NC] 是一个标志,告诉 Apache 使规则不区分大小写。 ^ 表示我们正在匹配服务器公网IP地址或域名之后的任何文本,而 $ 表示我们正在匹配的URL结尾。

所以我们完整的“**.htaccess** ”文件应该类似于下面的文本:

RewriteEngine on

RewriteRule ^contact_us$ contact_us.html [NC]

CTRL+ X、YEnter 保存文件。

接下来键入以下命令以创建 contact_us.html 页面:

$ sudo nano /var/www/html/contact_us.html

然后,将下面的 HTML 文本粘贴到文件中:

<html>
    <head>
        <title>Contact our website</title>
    </head>
    <body>
        <h1>This is a contact us page</h1>
    </body>
</html>

CTRL+ X、YEnter 保存文件。

现在,如果我们在浏览器上访问路径 http://wwwjiyik.com/contact_us,Apache 应该提供我们创建的页面“contact_us.html”,如下所示:

如何在 Ubuntu 18.04 VPS 或专用服务器上启用 Apache Mod_Rewrite

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

在 Apache2 中启用 PHP

发布时间:2023/03/27 浏览次数:149 分类:PHP

本文将教你如何使用 a2enmod、LoadModule 和符号链接在 Apache2 中启用 PHP。如果你遇到有关 PHP 的模块错误,我们将教你如何通过 apt-get 修复它。

Apache 的 AllowOverride All 并不像你想象的那样

发布时间:2023/01/06 浏览次数:88 分类:网络

我只需要为一个学校项目设置一个 Apache 服务器。 因为我喜欢使用 .htaccess 文件来设置重写规则并摆弄一些其他选项,所以除了标准批处理之外还必须加载一些额外的模块。 使用 phpin

从URL中移除 www.

发布时间:2023/01/06 浏览次数:155 分类:学无止境

如果你讨厌网站 URL 中的 www. 部分(就像我大约两个月前开始做的那样),你应该让其他人包括搜索引擎知道这一点。 这只是将通过 www. 访问的每个页面重定向到与其相等的 非www 的

php zookeeper常见问题解决方案

发布时间:2017/03/13 浏览次数:911 分类:PHP

本章承接上一章提出的php-zookeeper的问题以及原因来继续提出解决方案,一是修改php-zookeeper源码,再就是修改php代码。

php zookeeper你需要知道的细节

发布时间:2017/03/12 浏览次数:3599 分类:PHP

本章介绍如何在php中集成zookeeper,使用PHP-Zookeeper扩展插件。同时通过分析PHP-Zookeeper源码来了解其存在的一些问题,各位在使用过程中尽量避免相似问题。

Windows7下Apache2.4+PHP5.6环境配置

发布时间:2016/10/25 浏览次数:972 分类:操作系统

Apache2.4+PHP5.6的配置和其他版本的配置步骤是相同的。但是这里有一点需要注意的地方就是依赖组件版本的兼容。本篇主要就是对这个问题进行一个介绍说明。

Windows7下Apache2.4安装及注意事项

发布时间:2016/10/24 浏览次数:2446 分类:操作系统

windows7下面安装apache2.4,其过程和其他版本的apache不同。本篇就2.4版本在windows7下面编译安装以及注意事项做一个介绍。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便