什么是 .htaccess 文件?
- .htaccess 文件是一个 Apache HTTP服务器 (通常只是称为 Apache) 配置文件。 该文件非常强大,可用于帮助控制由以下网站提供的网页的多个方面 Apache. 这包括管理重定向、热链接保护等。
哪儿是 .htaccess 文件?
应该有一个 .htaccess 您的网络主机根文件夹中的文件 - 包含您网站内容的文件夹(通常是 /public_html 或 /www)。
你可以拥有多个 .htaccess 您的主机帐户上的文件,但每个目录或文件夹只能有一个。 例如,您可以有单独的 .htaccess 根文件夹中的文件和子文件夹中的另一个文件。 这允许您根据目录结构设置不同的服务器行为。
- .htaccess 文件功能强大,但如果没有正确保护,可以访问和修改。 确保您采取措施阻止访问此文件。
你的 .htaccess 文件可能被隐藏
首先 .htaccess 是一个 Apache 文件,这意味着您只能在 Apache 服务器.* 如果您的主机正在不同的 Web 服务器软件(即 Microsoft IIS 或 NGINX)上运行,请停止搜索。
以点开头的文件名通常是隐藏文件。 这意味着默认情况下它们通常不可见。
要查看此文件,只需在您的 FTP 客户端或托管文件管理器(见下图)。
你可能会觉得 .htaccess 文件是一个不便,因为它需要 编码 但考虑需要跨多个站点建立相同服务器行为的用户。 该人需要做的就是复制 .htaccess 文件中。
.htaccess 文件是服务器配置文件,因为它们直接处理行为,所以每次发出请求时都不需要运行某些东西。 因此,例如,与使用插件相比,它的资源密集度要低得多。
*注意: Apache 具有 关于22.8%市场占用率 根据 W3Techs 2022 年 XNUMX 月的报告,排名前百万的网站。 提到的最受欢迎的托管品牌 WHSR – A2 Hosting, BlueHost, GreenGeeks, Hostinger, InMotion Hosting 由供电 Apache.
运用 .htaccess 文件 – 现实生活中的示例和代码示例
虽然文件名前面有一个点,但 htaccess 是文件的名称,点并不会使其成为扩展名。 具体来说,正是这个确切的文件名 Apache 寻找它何时运行。 里面的任何东西 .htaccess 文件设置参数 Apache 在满足某些条件时启用或禁用功能甚至执行特定任务。
例如,根据文件中包含的说明, Apache 如果您的网站访问者正在寻找不存在的资源,则可以自动加载自定义错误页面。 每种错误类型都有自己的代码,并且每个错误都可以单独重定向。
有一个巨大的列表可以使用 .htaccess 文件,今天我将与您分享其中的一些。
1。 管理自定义错误页面
当保留默认设置时,大多数 Web 服务器软件会向您的访问者发送一个看起来非常暗淡的错误页面。 如果你想显示一个对用户更友好(或者至少是像样的)错误页面,那么你需要在你的 .htaccess 文件中。
比方说你设计了一个 自定义404错误页面 命名为“404.html”并将其保存到您的 Web 目录中名为“error_pages”的子文件夹中。 在中使用以下代码行 .htaccess,您可以在访问者遇到 404 错误时调用该页面;
ErrorDocument 404 /error_pages/404.html
使用此技术,您可以保存您想要解决的每种错误类型的自定义副本,并通过在您的 .htaccess 文件。 最常遇到的 错误代码 包括;
- 400 –错误的要求
- 403 - 禁止
- 404 –找不到文件
- 500 - 内部服务器错误
- 503服务不可用
2。 处理重定向
在某些情况下,您可能希望设置一揽子重定向,以便您可以在不知情的情况下将访问者定向到特定页面。 例如,如果您最初使用HTTP但从那时起 安装 SSL 并转移到 HTTPS,您希望所有用户都使用您网站的HTTPS版本。
在这种情况下,您需要做的是使用重写规则;
RewriteEngine On RewriteCond %{SERVER_PORT} 80 RewriteRule ^(.*)$ https://www.yourdomain.com/$1 [R,L]
可以根据您的需要修改此代码。 例如,如果您想将用户从旧域重定向到新域,那么您可以使用;
RewriteEngine On RewriteCond %{HTTP_HOST} ^olddomain.com [NC,OR] RewriteCond %{HTTP_HOST} ^www.olddomain.com [NC] RewriteRule ^(.*)$ http://newdomain.com/$1 [L,R=301,NC]
如何设置重定向有很多变化。 细节 重写的语法 可以在。中找到 Apache 文件 页面。
重定向可以为您做的最有用的事情之一是帮助您将搜索引擎引导到您移动的页面。 通常情况下,搜索引擎会索引链接,如果他们找不到合适的页面,他们会认为内容已经消失。
通过使用重定向,您可以轻松移动内容,并让网络抓取工具知道在哪里可以找到他们之前编制索引的内容。 为此,请使用;
Redirect 301 /archive/ /past-entries/
301 指令不仅让用户访问旧内容 seamlessly,但也可以作为内容永久移动的网络爬虫指令。 这有助于他们快速重新索引链接。
3. 提高网站安全性
我发现许多新的网站所有者往往过分依赖 外部工具,以提高其网站安全性. 虽然确实有很多很棒的应用程序,但您可以从您的基础知识开始 .htaccess 文件中。
密码保护目录
为此,您需要两个文件, .htaccess 和.htpasswd。 .htpasswd 文件包括一些 数据加密,所以使用类似的工具 Htpasswd发电机 创建文件。 这 .htaccess 文件应包含此代码;
AuthType Basic AuthName "Password Protected Area" AuthUserFile /path/to/.htpasswd Require valid-user
禁用目录浏览
这是最容易做到的一种,只需要两行代码就可以包含在你的 .htaccess 文件;
# Disable directory browsing Options -Indexes
阻止特定IP
要阻止单个 IP 访问您的网站,请将以下代码添加到您的 .htaccess 文件;
Deny from XXX.XXX.XXX.XXX
您将 XXX 替换为数字 IP 值的位置。 此代码有多种变体,可用于阻止一系列 IP地址 或多个 IP 地址。
4。 热链接保护
当其他网站链接到您托管的图像时,就会发生热链接。 这是不可取的,因为他们正在利用您的空间和带宽。 为防止图片盗链,请将以下内容添加到您的 .htaccess 文件;
RewriteEngine on RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http://(www\.)example.com/.*$ [NC] RewriteRule \.(gif|jpg|jpeg|bmp)$ - [F]
该代码的最后一行是您指定要阻止站点进行热链接的文件的位置。 基本上是在指导 Apache 阻止指向那些不是来自的文件的所有链接 域名 http://www.example.com/.
许多热链接的人经常不再检查他们的帖子,所以如果你真的想让他们难堪,你可以向试图热链接的网站显示自定义消息;
RewriteEngine on RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http://(www\.)example.com/.*$ [NC] RewriteRule \.(gif|jpg)$ http://www.example.com/stopstealing.gif [R,L]
5. 保护 .htaccess 文件
到现在为止,你已经意识到一个工具是多么有用 .htaccess 文件确实是。 既然你已经意识到,是时候考虑保护这个有价值的文件了! 如果您使用的是 .htpasswd 文件,那么您可能也希望屏蔽它,而同时做到这一点的方法是;
# protect .htaccess and .htpasswd <Files ~ "^.*\.([Hh][Tt])"> Order allow,deny Deny from all Satisfy all </Files>
请注意,在大多数安全服务器上,这些文件已经受到保护。 在添加此代码之前,请检查您是否可以在浏览器窗口中访问这些文件。 只需输入 URL 并添加 /.htaccess 后面看是否可以查看文件。 如果不能,您可能会看到一条错误消息。
6。 设置服务器时区
如果您注意到由于某种原因或其他原因,您的服务器上的时间似乎有点偏离,那么您可能需要使用 .htaccess 文件。 这又是一件很容易做到的事情,只需要一行代码;
SetEnv TZ America/yourtimezone
有一个巨大的时区列表,你可以参考你找到最接近你的时区 支持的时区列表.
拥抱力量 .htaccess
我在这里展示的样本只是一个非常大的冰山一角。 它给 网络托管 与通常通过控制面板允许的相比,用户对其网站的控制权要大得多,并为他们提供了更广泛的工具可供使用。
学习使用代码仅仅是谷歌的力量的一步之遥,最好的事情是你只需挑选和学习你需要使用的东西。
.htaccess 文件常见问题
不,.use of .htaccess 不是强制性的。 然而,这是唯一的方法之一 共享主机 用户可以对其进行一些控制 网络托管 服务器。 如果您不打算在共享主机上更改服务器配置,则该文件是不必要的。
由于 .htaccess 文件用于服务器配置,它包含带有相关说明的代码。 例如,“SetEnv TZ America/yourtimezone”行将允许您根据自己的喜好设置服务器时区。
创建一个的最佳方法 .htaccess 文件是使用纯文本编辑器。 例如,您可以在本地计算机上使用 Microsoft NotePad,然后将其上传到您的 Web 托管服务器。 或者,大多数网络托管文件管理器也允许您创建纯文本文件。
- .htaccess 文件没有直接关系 WordPress 因为它用于服务器配置。 你的 WordPress 网站可能有也可能没有。 如果它不存在,您仍然可以创建和使用 .htaccess 手动归档。