.htaccess 初学者指南

已发表: 2023-10-25

.htaccess——每个拥有网站的人都时不时听到过的可怕词。 虽然这个名字本身看起来技术性太强,难以理解,但它是你的武器库中的一个强大工具。 通过掌握 .htaccess、它的工作原理和可能的用例,您可以毫不费力地用它做很多事情。 让我们深入了解它是什么、如何使用它来为您带来好处,并获取 .htaccess 最常见用法的最有用的示例和解释!

什么是 .htaccess?

.htaccess 是“超文本访问”的缩写,是一个配置文件,可以帮助您控制 Apache Web Server 软件。 您可以创建 .htaccess 文件并将其添加到目录中,以便 Apache Web 服务器加载并稍后执行该文件。

简而言之,您可以使用此文件来启用或禁用 Web 服务器必须提供的任何功能。 从基本的重定向或热链接预防,掌握 .htaccess 的使用有很多好处。

.htaccess 文件是什么样的?

.htaccess 文件就是您创建的文件。 它可以仅包含一行或多行,具体取决于文件的用途。 您可以在文件中写入很多内容来执行很多操作,在阅读时您会发现一些示例。

我已经有一个了吗?

在大多数情况下,如果您有网站,则可能已经有 .htaccess 文件。 您通常可以在网站的根文件夹中找到它。 只需前往包含网站所有内容的文件夹,然后查找 Public_HTML 文件夹或名为 www 的文件夹。 如果您有多个站点的子目录,您将在每个子目录中找到一个。

如果您找不到它,请不要担心。 这并不意味着您没有它——它可能只是被隐藏了。 以点开头的文件通常就是这种情况,就像 .htaccess 一样。 默认情况下,它们通常不容易被发现。

只需前往文件管理器或 FTP 客户端,然后查找“显示隐藏文件”选项即可。 不要遗漏任何选项,尤其是“首选项”、“设置”或“选项”。

我好像没有啊

不过,不用担心,因为您可以毫不费力地创建一个。 您需要的是一个常规的文本编辑器和一些对细节的关注。 例如,您可以使用 Microsoft WordPad 或 TextPad。 不过,棘手的部分是确保正确命名和保存 .htaccess 文件。

首先,您需要以正确的格式保存它。 它应该是 ASCII 格式,因此请抵制将其保存为 UTF-8 或任何其他格式的诱惑。

其次,确保它的名称为.htaccess。 这听起来很简单,但这实际上是对细节的关注发挥作用的地方。 您要确保保留开头的点。 下一步是确保不包含任何文件扩展名。 将其另存为“htaccess.txt”将无法到达终点线。 添加点,然后删除扩展名!

最后,您要将其上传到适当的目录。 您可以返回指南并将其保存在上述目录之一中。 为此,您可以使用 FTP 或您熟悉的任何其他基于浏览器的文件管理器。

我可以用 .htaccess 做什么?

通过 .htaccess 和一些专业知识,您可以实现多种目标。 这里是其中的一些:

处理错误

您可以使用 .htaccess 做的第一件事,也是最简单的事情之一,是确保您的访问者看到友好的自定义错误消息,而不是可怕的消息。

您要做的是首先创建一个 HTML 文档。 建议包含错误描述,例如 404 错误为“Not Found”,502 错误为“Bad Gateway”。 但事实是,您可以显示任何您想要的内容。

您还应该确保正确命名它,以便知道它是哪个文档。 如果是处理404错误,常见的保存方式是404.html。 您还希望将其保存到 error_pages 目录,该目录应保存所有错误文档。

准备就绪后,您应该在首选编辑器中打开 .htaccess 文件,然后输入如下内容:

错误文档 404 /error_pages/404.html

当发生 404 错误时,这一行将告诉您的网站服务器显示指定的文档。 您可以使用您想要的任何错误文档进一步重复此过程,以确保您的访问者不会因他们通常收到的过于简单和通用的消息而感到沮丧。

简单重定向

虽然 WordPress 可能有许多插件可以为您执行此操作,但您也可以使用 .htaccess 文件重定向访问者。 让访问者访问您指定的页面而不是他们要求的页面是另一项简单的任务。 通过在文件中输入另一行,您可以将访问者重定向到网站内的另一个位置,甚至重定向到另一个网站。

要重定向它们,以下是您可以添加到 .htaccess 文件中的内容的示例。 当然,您应该对其进行一些编辑以满足您的需要。

重定向 /old_dir/ http://www.yourdomain.com/new_dir/index.html

让我们对此进行解释,以便您知道如何对其进行自定义,以确保您的访问者最终到达您希望他们最终到达的地方。

首先,/old_dir/ 是什么? 它是位于您的域下的目录或文档,或者更准确地说,它位于“http://www.yourdomain.com/old_dir/”。 这是您的访客将尝试访问的点。 文件的其余部分指定了它们应该结束的位置。 在这种情况下,它们最终将出现在您网站上的 /new_dir/ 的索引页面上。

正如您所看到的,与起始点不同,您希望用户最终到达的页面是完整的 URL。 这在重定向到另一个域时很有帮助,因为您可以使用任何 URL 并添加它,而不是示例中的 URL。 小菜一碟,不是吗?

密码保护

如果您希望围绕您的网站建立一个社区,那么提供会员区域并让访问者登录可能就是一个窍门。 虽然社区对于您的营销工作和销售来说是一件很棒的事情,但它也可以帮助您了解您的用户是谁,并收集有关您的客户的急需信息。

只要您符合 GDPR 规定,您就可以使用这个巧妙的技巧根据您收集的信息编辑您的报价,并最终 – 卖出更多!

如何进行密码保护?

为网站上的任何内容添加密码是使用 .htaccess 文件的最常见方法。 做起来也相当简单,而且您仍然可以用密码保护一个或几个目录。 这将使用户拥有有效的用户名和密码来访问它,这在各种情况下都非常有用。

如果您为目录设置了密码保护,则登录过程将相当简单,并且您的网络浏览器会自动处理。 它将显示为浏览器的弹出界面。 密码也经过加密,因此登录凭据也将是安全的。

如果您知道要使用密码保护哪个目录,请继续创建一个 .htaccess 文件。 请记住,所有子目录最终也将受到密码保护! 同样的规则也适用于此,但您可能希望包括以下内容:

AuthName“会员姓名”

AuthUserFile /路径/到/密码/文件/.htpasswd

AuthType 基本

需要有效用户

让我们将其分解,以便您知道如何在需要时对其进行修改。 在第一行中,该 .htaccess 文件指定您要保护的目录的名称。 在本例中,它是“Member's Name”目录,但您应该修改它以适合需要密码的目录的名称。

第二行指定密码文件,或者更准确地说,服务器可以在哪里找到密码文件。 第三个是您正在使用的授权类型。 在示例中,它是 basic,代表基本 HTTP 身份验证。

最后一行代表登录的要求。 在此示例中,它需要有效的登录凭据。 您可以在此处指定有效所需的内容,具体取决于您要使用密码保护的内容。

密码文件

现在,您需要找出密码文件。 虽然它可以位于 Web 服务器上的任何位置,但建议将密码文件位于与 .htaccess 文件相同的目录中。 这是因为某些服务器需要进行此设置。 您应该在第二行中使用包含密码文件的目录的完整路径。

当然,这也意味着你必须准备好密码文件。 在示例中,它称为 .htpasswd,但您可以将其命名为任何您喜欢的名称。 不过,如果您将其命名相同,好消息是服务器将识别该文件名并自动对访问者隐藏它。 密码文件应包含以下内容:

用户名:加密密码

约翰_史密斯:oCF9Pam/MXJg2

拒绝访客访问

即使是网站,也存在不受欢迎的人。 使用正确的 .htaccess 文件,您可以限制某人的访问。 或者,另一方面,允许特定访问者进行特定访问。 如果您希望保护您的网站,第一个非常有用,如果您想完全控制网站的特定方面,则后者是完美的。

您可以通过两种方式拒绝访问者的访问。 根据访问者的 IP 地址拒绝访问者的访问,或者您可以根据引荐来源网址进行选择。

通过IP拒绝

如果您希望将某些 IP 放入黑名单中,则可以借助 .htaccess 文件的一些帮助轻松完成此操作。 按照相同的规则创建一个新的,然后添加以下文本。

命令允许、拒绝

来自 XXX.XXX 的拒绝

来自 XXX.XX.X 的拒绝。

允许所有人

当然,您应该将 X 替换为您想要阻止的 IP 地址。 根据需要添加任意数量,此文件将使 Web 服务器知道您的站点不欢迎这些 IP 地址。 确保添加允许所有人,因为这行代码表示非常欢迎其他访问者访问您的网站。

另一方面,如果您想成为唯一有权访问的人,则应包含以下文本:

命令允许、拒绝

允许来自 XXX.0.0.0

所有人都否认

当然,您应该将 X 替换为您自己的 IP 地址。 这将告诉服务器只有您才能访问特定地点。

被推荐人拒绝

查看您的日志,您发现可疑活动。 为什么不将推荐人添加到黑名单中,从而消除您的后顾之忧呢? 以下是使用 .htaccess 的方法。

只需像平常一样创建文件即可。 输入应如下所示:

重写引擎开启

# 选项 +FollowSymlinks

RewriteCond %{HTTP_REFERER} otherdomain\.com [NC]

重写规则 .* – [F]

这应该可以解决问题! 不过,您应该检查服务器上是否启用了“mod_rewrite”,因为它可能会因对资源提出相当大的需求而被禁用。 如果是,您应该与您的托管提供商核实。

本质上,这些行让服务器知道您的网站不欢迎来自 otherdomain\.com 的人。 当然,您应该在此处添加适当的域。 末尾的“[NC]”部分也非常重要,因为它让它知道您提供的域名不区分大小写。 这意味着“OtherDomain”也是禁区。

如果您想阻止多个麻烦制造者,请添加“[NC,OR]”,然后继续以相同的方式添加另一个:

RewriteCond %{HTTP_REFERER} anotherdomain\.com

您可以继续这样做,直到您满意为止,但不要忘记在每一个的末尾添加“[NC,OR]”,除了最后一个。

防止坏机器人扫描您的网站

使用 .htaccess 的另一个完美理由是防止网站上的爬虫。 虽然有些是无害的,会下载整个内容以供离线浏览,但也有一些是怀有恶意的。 也就是说,互联网上充满了恶意机器人,它们寻找电子邮件地址来填充垃圾邮件、安全漏洞,或者只是为了获取内容。

虽然这比前面的示例更高级一些,但您绝对应该尝试一下。 必须以这种或那种方式防止这些坏机器人对您造成任何伤害。

只需像前面示例中那样创建另一个 .htaccess 文件即可。 您需要在其中写入的内容与此类似:

重写引擎开启

RewriteCond %{HTTP_USER_AGENT} ^BlackWidow [或]

RewriteCond %{HTTP_USER_AGENT} ^SuperBot

重写规则 ^.* – [F,L]

事实上,这个列表应该更长,因为它应该包括所有知名的蝙蝠机器人。 您可以在这里找到这样的列表。 包含的内容越多越好。

不过,请确保重命名它 - 使用机器人的名称而不是 BlackWidow 或 SuperBot。 始终在每个末尾包含[OR] ,但确保不要将其与最后一个一起使用。 瞧! 您的网站没有所有这些恶意爬虫!

还有更多吗?

当然有。 如前所述,这毕竟是初学者指南。 您还可以使用 .htaccess 文件执行许多其他操作。

例如,您可以使用 .htaccess 文件来设置服务器时区或更改其签名。 如果您的网站严重依赖媒体,您可以使用它来确保下载所有媒体文件,而不是播放。 或者,您可以使用它来阻止包含无效字符等的请求。

虽然尝试拼写 .htaccess 很麻烦,但正如您所见,使用它却是小菜一碟,而且您仍然可以用它完成很多事情!

创建和编辑文件时必须记住的是,在进行任何更改后,在将其上线之前对其进行彻底测试。 您不想向您的用户提供 500 内部服务器错误,是吗?

最后一条建议

即使某些事情无法正常工作,也不要过度沮丧。 检查是否有拼写错误,这通常可以解决问题! 如果没有,请检查支持论坛!