.htaccess的基础知识:如何使用和示例

文章撰写者:
  • 托管指南
  • 更新:Jul 29,2019

什么是.htaccess文件?

.htaccess文件是 Apache HTTP服务器 (通常只称为Apache)配置文件。 该文件非常强大,可用于帮助控制Apache提供的网页的多个方面。 这包括管理重定向,热链接保护等内容。

.htaccess文件在哪里?

您的Web主机根文件夹中应该有一个.htaccess文件 - 包含您网站内容的文件夹(通常是/ public_html或/ www)。

您的主机帐户上可以有多个.htaccess文件,但每个目录或文件夹只能有一个.htaccess文件。 例如,您可以在根文件夹中包含单独的.htaccess文件,在子文件夹中包含另一个文件。 这允许您根据目录结构设置不同的服务器行为。

.htaccess文件功能强大,但如果未正确保护,则可以访问和修改。 确保您采取措施阻止访问此文件。

我找不到我的.htaccess文件

首先.htaccess是一个Apache文件,这意味着你只能在Apache服务器中找到它。*停止搜索你的主机是否运行在不同的Web服务器软件(即Microsoft IIS或NGINX)上。

以点开头的文件名通常是隐藏文件。 这意味着默认情况下它们通常不可见。

要查看此文件,只需在FTP客户端或主机文件管理器中打开“显示隐藏文件”(请参见下图)。

查找.htaccess文件 - 如何在cPanel文件管理器中显示隐藏文件
示例 - 通过在cPanel文件管理器中启用此选项来显示隐藏文件。

您可能会觉得.htaccess文件不方便,因为它需要编码,但考虑需要在多个站点上建立相同服务器行为的用户。 该人员需要做的就是复制.htaccess文件。

.htaccess文件是服务器配置文件,因为它们直接解决了行为,所以每次发出请求时都不需要运行某些东西。 因此,与使用插件相比,它的资源密集程度要低得多。

*注意:Apache有 关于30%市场占用率 基于W3Techs报告。 WHSR提到的最受欢迎的托管品牌 - A2 Hosting, BlueHost, GreenGeeks, Hostinger, InMotion Hosting, SiteGround; 由Apache提供支持。

什么.htaccess是为了什么?

虽然文件名前面有一个点,但htaccess是文件的名称,而点不会使其成为扩展名。 具体来说,它是Apache在运行时查找的确切文件名。 .htaccess文件中的任何内容都为Apache设置参数以启用或禁用功能,甚至在满足某些条件时执行特定任务。

例如,根据文件中包含的说明,如果您的网站访问者正在寻找不存在的资源,Apache可以自动加载自定义错误页面。 每种错误类型都有自己的代码,每个错误类型都可以单独重定向。

有一个很大的列表,可以使用.htaccess文件完成什么,今天我将与你分享其中一些。

1。 管理自定义错误页面

文字说明:一些创造性定制的404错误页面的示例

当保留默认设置时,大多数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文档 页面。

重定向可以为您做的最有用的事情之一是帮助您将搜索引擎引导到您移动的页面。 通常情况下,搜索引擎会索引链接,如果他们找不到合适的页面,他们会认为内容已经消失。

通过使用重定向,您可以轻松移动内容,并让网络抓取工具知道在哪里可以找到他们之前编制索引的内容。 为此,请使用;

重定向301 / archive / / past-entries /

301指令不仅允许用户无缝访问旧内容,还可以作为网络抓取工具的指令,永久移动内容。 这有助于他们快速重新索引链接。

2。 提高您的网站安全性

我发现许多新的网站所有者往往过分依赖 外部工具,以提高其网站安全性。 虽然确实存在大量优秀的应用程序,但您可以从.htaccess文件中的基础知识开始。

密码保护目录

要做到这一点,你需要两个文件,.htaccess和.htpasswd。 .htpasswd文件包含一些加密,因此请使用类似的工具 Htpasswd发电机 创建文件。 .htaccess文件应包含此代码;

AuthType Basic AuthName“密码保护区域”AuthUserFile /path/to/.htpasswd需要有效用户

禁用目录浏览

这是最容易做到的事情之一,只需要在.htaccess文件中包含两行代码;

#禁用目录浏览选项 - 索引

阻止特定IP

要阻止单个IP访问您的站点,请将以下代码添加到.htaccess文件中;

拒绝来自XXX.XXX.XXX.XXX

使用数字IP值替换XXX的位置。 此代码的变体可用于阻止一系列IP地址或多个IP地址。

3。 热链接保护

当其他网站链接到您托管的图像时,就会发生热链接。 这是不可取的,因为它们正在利用您的空间和带宽。 要防止图像热链接,请将以下内容添加到.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]

哪个可以在违规网站上显示替代图像,如下所示:

4。 保护.htaccess文件

到目前为止,您已经意识到.htaccess文件真正有用的工具。 既然你已经意识到这一点,那么你应该考虑保护这个有价值的文件了! 如果你使用的是.htpasswd文件,那么你可能也希望屏蔽它,并且两者的方法是:

#prote .htaccess和.htpasswd <Files~“^。* \。([Hh] [Tt])”>订单允许,拒绝拒绝所有人满意</ Files>

请注意,在大多数安全服务器上,这些文件已受到保护。 在添加此代码之前,请检查您是否可以在浏览器窗口中访问这些文件。 只需输入URL并在后面添加/.htaccess即可查看是否可以查看该文件。 如果不能,您可能会显示错误消息。

5。 设置服务器时区

如果您注意到由于某种原因,服务器上的时间似乎有点偏差,那么您可能需要使用.htaccess文件强制使用时区。 这是一件容易做的事情,只需要一行代码;

SetEnv TZ America / yourtimezone

有一个巨大的时区列表,你可以参考你找到最接近你的时区 支持的时区列表.

拥抱.htaccess的力量

我在这里展示的样本只是一个非常大的冰山的一角。 它为网络托管用户提供了比通常通过控制面板允许的更强大的功能,并为他们提供了更广泛的工具。

学习使用代码仅仅是谷歌的力量的一步之遥,最好的事情是你只需挑选和学习你需要使用的东西。

关于Jerry Low

WebHostingSecretRevealed.net(WHSR)的创始人 - 100,000用户信任和使用的托管评论。 超过15在网络托管,联盟营销和SEO方面的多年经验。 ProBlogger.net,Business.com,SocialMediaToday.com等的贡献者。