如何设置mod_重写(set up mod_rewrite)

ApacheWeb服务器是Internet的主要构建块之一,为网站和应用程序提供服务。这是一个有很多选择的复杂系统,其中最重要的是重写模块,简称“mod_Rewrite”。在本文中,我们将了解mod_rewrite的用法,然后探索如何在您自己的基于Apache的站点上设置它。...

ApacheWeb服务器是Internet的主要构建块之一,为网站和应用程序提供服务。这是一个有很多选择的复杂系统,其中最重要的是重写模块,简称“mod_Rewrite”。在本文中,我们将了解mod_rewrite的用法,然后探索如何在您自己的基于Apache的站点上设置它。

apache重写模块的用途

本模块的目的是以各种有用的方式重写URL。这意味着,当用户通过一个URL到达您的网站时(通过键入或选择包含该URL的链接),他们将“结束”到另一个URL。您可能希望这样做的原因有很多。

重定向用户

您可以使用mod_rewrite将用户从可能仍然出现在搜索结果中的旧的、过时的页面引导到更新的、最新的页面。例如,假设您在上有一个页面https://www.mysite.com/review2015; 如果有人发现这是一个链接并选择了它,您可以使用重写规则将其指向http://www.mysite.com/review2019.

更容易记住URL

你可能已经看到过与电子商务相关的链接,比如https://www.thestore.net/3d78654954c29ace998658. 开发人员使用这样的标签来确保项目具有唯一的标识符,但对于非技术人员类型,很难记住。

幸运的是,重写规则可以帮助你公布一个好的URL,比如https://www.thestore.net/notebooks/spiral/3-subject-spiral/,当跟随它时,会将访问者引导到具有丑陋URL的URL。

唯一页面名称

在Web的早期,当您访问网站时,通常会看到页面文件的实际名称。例如,网站的“关于我们”页面可能是“http://www.someguys.org/about.html."

但有几个原因让你看不到这些了。首先,许多网站都是由内容管理系统运行的,这些系统只有少量的实际页面文件。其余的内容会在页面提供时动态添加,因此所有页面可能看起来都具有相同的URL,如“http://www.someguys.org/index.php.“URL重写允许您拥有这些单独页面的外观,同时仍然使用动态CMS管理您的网站。

更容易理解的URL

当网页的URL易于理解时,搜索引擎对网页的排名更高。这意味着网站有一个类似“的URL是有益的”https://www.thecompany.com/services/consulting“而不是”https://www.thecompany.com/index.php?section=services&page=consulting,因为最后一部分看起来更像代码而不是URL。

从URL的角度来看,重写可以确保你总是展现出你最好的一面。

如何在站点上设置mod_rewrite

在Apache上使用URL重写需要两个主要组件:

  • 在Apache中启用实际的重写模块
  • 在.htaccess文件中列出必要的重写规则。

虽然URL重写的用途同样适用于其他web服务器,如IIS或nginx,但mod_rewrite和下面的方法仅适用于Apache。

在apache中启用重写功能

首先,您需要在Apache安装中打开重写功能。

  1. 您需要找到Apache的配置文件所在的位置。这取决于您使用的安装程序。在Windows上,您应该在Apache安装目录下查找名为“/conf”的目录。在macOS流行的XAMPP安装程序中,它位于/Applications/XAMPP/xamppfiles/apache2/conf中。在Linux上,它将出现在/etc/apache2目录中。在任何情况下,您都在寻找一个名为“httpd.conf”、“http.conf”或“apache2.conf”的文件,因此您也可以使用操作系统的搜索功能来查找这些文件。
  2. 在文本编辑器中打开配置文件,如Windows的记事本或macOS上的TextEdit。
  3. 查找行“#LoadModule rewrite_module modules/mod_rewrite.so”,并删除开头的hashtag。这表示一条注释,这意味着当它出现时,Apache服务器将忽略该行中的所有内容。删除hashtag,下次Apache启动时将执行该行。
  4. 保存配置文件并重新启动Apache服务器。
  5. 或者,在某些版本的Linux上,您会看到一些目录,如“/etc/apache2/mods available”和“/etc/apache2/mods enabled”。这些目录包含一些动态组合的配置文件。在这种情况下,您可以运行以下命令,首先启用重写模块,然后重新启动Apache服务器:sudo a2enmod rewritesystemctl重新启动apache2
  6. 现在,您的Apache服务器可以为您重写URL了。只是现在你需要告诉它哪些要重写,在什么情况下。

在站点上定义mod_重写规则

您需要使用正则表达式语言定义mod_重写的规则。幸运的是,有一些可用的帮助。对于要启用的给定重写,可以使用VisioSpark的规则生成器之类的工具。

  1. 在from:字段中输入要从中重写的URL,即用户将输入的URL。
  2. 在“收件人:”字段中输入要重写到的URL,即用户将到达的URL。
  3. 选择验证码控件,然后选择Go。然后生成器应该提供一个以“重写规则”开头的结果。如果您碰巧找到另一个生成器,这些步骤可能略有不同,但希望是在同一个大概范围内。

输入站点的mod_重写规则

这是一个很好的点击方式来制定这些规则。但是你把它们放在哪里?

要在网站上使用规则,您需要在网站的根目录中创建一个名为“.htaccess”的文件。它在某种程度上依赖于平台,特定网站的文件存储在哪里,但您首先需要弄清楚这一点,才能在那里部署您的网站。

可能已经存在具有该名称的文件。如果是这样,那太好了!您只需将行添加到该文件中即可。

  1. 在网站的根目录中创建一个名为“.htaccess”的新文本文件。
  2. 在第一行中,输入以下代码。这会告诉服务器您希望为当前网站启用重写。上的重写引擎
  3. 接下来,添加使用生成器创建的每条线。我们文件的开头如下所示:RewriteEngine onRewriteRule^Notebook/spiral/3-subject-spiral/$/3d78654954c29ace998658?&%{查询字符串}
  4. 与任何Apache配置更改一样,最好重新启动服务器。

使用mod_重写需要时间,但结果是值得的

在Apache上使用mod_rewrite函数肯定需要一些努力。您必须处理基于文本的配置文件,找到一种方法将非常挑剔的正则表达式放入这些文件,并知道如何手动停止和重新启动服务。在你得到一些不会导致错误和行为正确的东西之前,可能需要大量的尝试和错误。

也就是说,一旦你掌握了窍门,你将从mod_重写中获得巨大的好处。你的访问者将能够更好地记住你的URL,你在谷歌上的排名可能会提高。最终产生的“漂亮URL”毕竟不仅仅是为了展示。它们也很实用。

  • 发表于 2021-09-07 22:55
  • 阅读 ( 101 )
  • 分类:数学

你可能感兴趣的文章

5个有用的vb windows脚本,可自动使用计算机

... 可以学习如何以正常的方式完成所有这些单独的事情,或者使用批处理文件来完成它们。但是VB脚本比批处理脚本好,因为它们更灵活。如果您将以下脚本存储在一个公共位置,以...

  • 发布于 2021-03-11 20:14
  • 阅读 ( 419 )

如何使用sweetfx获得令人惊叹的pc图形

... 如何激活sweetfx ...

  • 发布于 2021-03-17 09:24
  • 阅读 ( 236 )

如何从一个闪存驱动器玩积木乐趣随处minecraft

...动器上安装便携式Minecraft。请继续阅读,我们将详细介绍如何配置Minecraft的便携式副本,以获得build anywhere的乐趣。 我为什么要这么做? 一个标准的Minecraft安装会将你的Minecraft游戏数据存放在一个系统目录中,直到Minecraft launc...

  • 发布于 2021-04-10 20:57
  • 阅读 ( 272 )

如何在xbmc上重现频道冲浪体验

...只是为了搔搔看电视的痒。请继续阅读,我们将向您展示如何使用一个非常聪明的附加组件在XBMC上重新创建频道冲浪体验。 我为什么要这么做? 越来越多的人开始“割断绳索”,脱离传统的以有线电视为中心的电视观看体验...

  • 发布于 2021-04-11 07:15
  • 阅读 ( 181 )

使用dd wrt mod kit从家庭路由器释放更多能量

...章: 使用DD-WRT将您的家庭路由器变成超级强大的路由器 如何使用DD-WRT增强Wi-Fi网络信号并增加范围 假设你熟悉这些主题,继续阅读。请记住,这本指南是一个多一点技术,初学者应该小心时,修改他们的路由器。 概述 本指...

  • 发布于 2021-04-13 00:19
  • 阅读 ( 211 )

如何在tumblr上设置自定义域名(使用godaddy)(set up a custom domain name on tumblr (using godaddy))

...您需要进入您的域注册器帐户配置一些设置,以便它知道如何将您的域指向Tumblr。为此,您必须访问域注册器帐户中的DNS管理器。 登录你的GoDaddy帐户,然后选择你想要设置的域名旁边的DNS按钮,指向你的Tumblr博客。 请记住,...

  • 发布于 2021-09-08 10:56
  • 阅读 ( 178 )

关于如何在linux上安装apache的提示

...解析服务器端包含 mod_mime-将文件扩展名与其mime类型关联 mod_rewrite-动态重写URL mod_speling(原文如此)-帮助可能拼写错误URL的读者 mod_ssl-允许使用ssl进行强加密 mod_userdir-允许系统用户拥有自己的网页目录 请记住,这些并不是您...

  • 发布于 2021-09-08 13:13
  • 阅读 ( 109 )

vb.net控件继承编程简介

...“检查”图形。我们将构建一个这样做的类,并向您展示如何将其添加到项目中。虽然这本身可能很有用,但真正的目标是演示VB.NET的继承性。 让我们开始编码吧 要开始,请更改刚刚添加到oldCheckBox的复选框的名称。(您可...

  • 发布于 2021-09-11 23:52
  • 阅读 ( 183 )

如何设置蒸馏装置(set up distillation apparatus)

...物中的一种化学物质已被去除。 设置仪器 以下是如何组装设备: 你将要蒸馏的液体连同一块煮沸的芯片一起进入一个烧杯。 这个烧杯位于热板上,因为这是你要加热的液体。 将一小段玻璃管插入塞子中。将其连接到...

  • 发布于 2021-09-21 20:35
  • 阅读 ( 173 )

vb.net中的重写

...中,我将用其他同样无用的方法替换该方法,以说明它是如何完成的:将反转字符串的VB.NET函数。 Public Overrides Function HashTheName( nm As String) As String Return Microsoft.VisualBasic.StrReverse(nm) End Function 现在调用代码得到了完全不同的...

  • 发布于 2021-10-10 10:14
  • 阅读 ( 177 )