什么是 .htaccess 文件?

.htaccess 文件是用于配置网站某些方面的网站文件。比如重定向、自定义错误页面等等。所有这些都无需编辑主服务器配置文件。

它用于运行 Apache(一种开源 Web 服务器软件)的服务器。如果您的网站在 Nginx 上运行,则不会有 .htaccess 文件。

以下是 WordPress 网站的 .htaccess 文件的示例:

.htaccess 文件在哪里?

您的 .htaccess 文件通常位于您网站的根目录中,无论您是使用像 WordPress 这样的内容管理系统,还是从头开始创建网站。

访问站点根目录的一种方法是通过 Web 主机,通常通过文件管理器界面。这是您的虚拟主机中的一个目录,您可以在其中访问和编辑您网站的文件,例如您的 .htaccess 文件。

您的网站托管服务商的服务器文件可能看起来与您计算机上的文件夹类似:

但是 .htaccess 文件的确切位置取决于其用途。

例如,假设您网站的 “image” 目录中有一个 .htaccess 文件。该 .htaccess 文件中的指令只会影响该目录中的文件。

但是,如果您的 .htaccess 文件位于您网站的根目录(包含您的主要网站文件的文件夹)中,则该文件的指令将适用于您网站上的所有文件(和页面)。

注意:默认情况下,您的 .htaccess 文件可能处于隐藏状态。如果您没有看到它,请在文件管理器中查找显示隐藏文件的设置。如果它仍然没有显示,您可能需要自己创建一个 .htaccess 文件。

如何编辑您的 .htaccess 文件

如果您使用的是 WordPress,那么在安装 WordPress 时应该已经生成了一个 .htaccess 文件(如果不是这种情况,我们将在下一节中讨论该怎么做)。

编辑它主要有三种方式:

注意:在对网站文件进行任何更改之前,请创建网站的备份。如果您犯了导致您网站出错的错误,您可以上传您的备份。如果您使用的是 WordPress,请考虑使用备份插件来执行此作。或者联系您的主机,看看他们是否为您创建定期备份。

1. 文件管理器

许多网络主机提供通过文件管理器访问关键网站文件的能力。

为此,请登录您的主机,前往您的文件管理器,然后找到您的 .htaccess 文件。

您的 .htaccess 文件可能位于您的根文件夹中。在下面的示例中,根文件夹的标题为“public_html”:

双击 “.htaccess” 打开纯文本编辑器。

然后,进行任何更改(例如添加或删除指令)并点击保存按钮。

2. FTP 客户端

文件传输协议 (FTP) 客户端是一种应用程序,可让您在计算机和网站之间传输文件。Cyber duck 是 FTP 客户端的一个示例。

如果您没有 FTP 客户端,则需要设置 FTP 客户端。这可能需要联系您的主机以获取连接到它所需的详细信息。

设置 FTP 客户端后,您可以通过 FTP 登录到您的站点。我们将使用 Cyber duck 作为示例。

点击 “Open Connection” 并输入您的登录详细信息。您的网络主机通常会提供这些。

接下来,启用隐藏文件。默认情况下,任何以点开头的文件(如 .htaccess 文件)都是隐藏的。这意味着您无法查看或编辑它们。

要在 Cyber duck 中显示隐藏文件,请转到“Edit” > “Preferences” > “Browser”,然后选中“Show hidden files”旁边的框。

退出首选项。然后,找到您的 .htaccess 文件。同样,它可能位于您的根文件夹中。

选择文件并单击 “Edit”。

这会将计算机上的 .htaccess 文件作为纯文本文件打开。

直接在文件中进行任何编辑,然后点击 保存.您保存的更改会自动添加到您的 .htaccess 文件中。

3. WordPress 插件

像 Yoast 这样的插件可以轻松地从您网站的后端编辑您的 .htaccess 文件。

登录 WordPress 以下载并激活 Yoast 插件。

然后单击“Yoast SEO”并选择“Tools”。

点击 “File editor”。

滚动到 .htaccess 文件区域,然后直接在文本框中进行编辑。然后单击“Save changes to .htaccess”保存它们。

如何创建 .htaccess 文件

如果您还没有 .htaccess 文件,请按照以下说明自行创建一个。

文件管理器

要在主机的文件管理器中创建 .htaccess 文件,请选择您希望 .htaccess 文件所在的文件夹。请记住,.htaccess 文件会影响您将其放入的目录及其子目录。

然后点击 新文件 按钮。

接下来,将文件命名为 “.htaccess” (带点)。点击“CONFIRM”。

您现在有一个 .htaccess 文件,可以进行编辑。

FTP 客户端

要使用 FTP 客户端创建 .htaccess 文件,请将计算机上的纯文本文件另存为 “.htaccess”。您可以使用记事本等应用程序创建纯文本文件。

然后,在您选择的 FTP 客户端(我们使用的是 Cyber duck)中,选择要放置 .htaccess 文件的目录(如“public_html”)。然后单击“Upload”并选择保存到计算机的 .htaccess 文件。

您的 .htaccess 文件现在可以使用了。

4 个常见的 .htaccess 指令

这四个 .htaccess 指令可以帮助您改进和自定义您的网站。

1. 使用 .htaccess 添加重定向

您可以使用 .htaccess 以多种方式重定向 URL,具体取决于您要重定向的内容。

在添加某些类型的重定向之前,您可能需要通过将此指令添加到您的 .htaccess 文件中来加载 RewriteEngine 模块:

RewriteEngine On

然后,在此模块下添加 redirect 指令。

为清楚起见,我们将在下面的每个示例中根据需要包含“RewriteEngine On”代码。但是,根据 .htaccess 文件的设置方式,您可能不需要每次都包含它。

注意:确保将下面每个指令中的“yourdomain”替换为您网站的域名。

重定向单个 URL

使用此指令重定向单个 URL:

Redirect 301 /old-page/ https://www.yourdomain.com/new-page/

“旧页面”应提及 URL 路径,即您的域之后的部分。这应该以斜杠开头。

第二部分应该是新页面的完整 URL。

每当用户尝试从旧页面访问 URL 时,他们都会被自动重定向到新页面。

将 WWW URL 重定向到非 WWW URL

如果您的域使用 www 子域,则可以使用 .htaccess 文件通过以下指令将其重定向到非 www 版本:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^www.yourdomain.com [NC]

RewriteRule (.*) https://yourdomain.com/$1 [L,R=301]

将子文件夹重定向到新位置

子文件夹是存在于站点上另一个文件夹中的文件夹。例如,在“www.yourdomain.com/blog”中,“blog”部分是一个子文件夹。

您可以使用带有此指令的 .htaccess 文件(使用您的 URL 路径)将子文件夹重定向到域名上的不同位置:

RewriteEngine On

RewriteRule ^/?blog/(.\*)$ /news/$1 [R,L]

在上面的示例中,“blog”子文件夹中的任何 URL 都将被重定向到“news”子文件夹。

将旧域名重定向到新域名

您还可以使用 .htaccess 文件通过以下指令将用户从旧域名重定向到新域名:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^(?:www\.)?oldsite\.com$ [NC]

RewriteRule ^(.*)$ https://newsite.com%{REQUEST_URI} [L,R=301]

这会将域的 www 和非 www 版本重定向到新域。

重定向 URL 的其他方法

如果您不想编辑 .htaccess 文件,还有其他方法可以重定向 URL。

首先,对您的网站进行审核,看看哪些页面可能需要重定向。

Semrush Site Audit 工具可以为您识别这些页面。

在 Site Audit(网站诊断)工具中,输入您的 URL,然后单击 “Start Audit”(开始审核)。

在以下页面上配置您的审核设置。比如你想在审核期间检查多少个页面。以及您希望运行审计的频率。

配置审核设置后,单击 “Start Site Audit”。

审核完成后,点击 “Issues” 并查找 “# pages returned 4XX status code”。这意味着由于客户端错误,服务器无法访问这些页面。

单击 “# pages” 可查看每个受影响的页面。

查看您需要重定向的页面。以及您希望将哪些 (如果有) 保留为 404 错误。

如果您已删除页面并且没有任何相关页面可将用户重定向到,则您可能确实希望该页面显示 404 错误。

要在不编辑 .htaccess 文件的情况下在 WordPress 上为这些页面实施重定向,您可以使用像 Yoast 这样的插件。

安装并激活插件后,单击左侧工具栏中的“Yoast SEO”和“Redirects”。

选择所需的重定向类型。我们将使用 301 是因为我们想将旧页面永久重定向到新页面。

输入旧的 URL slug(URL 的最后一部分)和目标 URL slug。然后点击“Add Redirect”。

最后,通过在地址栏中输入旧 URL 来测试 URL,以确保它重定向到新页面。您可能需要先清除缓存。

2. 使用 .htaccess 加载自定义 404 错误页面

您的 .htaccess 文件还允许您加载自定义 404 错误页面——当服务器在该 URL 上找不到网页时显示的页面。当页面不再存在或有人输入了错误的 URL 时,可能会发生这种情况。

您可能希望一个反映您的品牌的 404 页面,并可能为用户提供相关内容或页面的指示。

例如,semrush中的一个 404 页面如下所示:

首先,创建您希望在有人遇到 404 错误时加载的页面。

然后,将此代码添加到您的 .htaccess 文件中:

ErrorDocument 404 /404-page.html

并更新路径以反映您的自定义 404 页面的路径。

然后,每当有人访问您网站上不存在的页面时,您的自定义 404 页面就会加载。

创建自定义 404 页面的其他方法

如果您使用的是 WordPress,那么像 Smart Custom 404 错误页面这样的插件可以帮助您相当轻松地创建 404 页面。

方法如下:

登录您的 WordPress 网站后安装并激活插件。然后前往“Pages”和“Add New Page”。

在编辑器中创建并发布您的自定义 404 错误页面。

发布页面后,单击菜单栏中的“Appearance”和“404 Error Page”。

从下拉菜单中选择您的错误页面,然后单击“Save Changes”。

通过访问您网站上不存在的 URL 来测试您的 404 页面。它应该重定向到您的新 404 页面。

3. 强制您的网站通过 .htaccess 使用 HTTPS 加载

安全超文本传输协议 (HTTPS) 对浏览器和您的网站之间的通信进行加密。它保护从浏览器发送到服务器的数据。

此外,HTTPS 是一个排名信号。因此,使用它可能会对您的排名产生积极影响。

如果您的网站具有安全套接字层 (SSL) 证书,则可以使用 .htaccess 文件强制使用 HTTPS 而不是 HTTP。

为此,请将以下代码行添加到您的 .htaccess 文件中:

RewriteEngine On

RewriteCond %{HTTPS} off

RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

注意:您可能需要调整上述规则的部分内容以适应您的具体情况。例如,您希望它是应用于所有流量还是仅应用于特定文件夹。

使用 HTTPS 而不是 HTTP 的其他方法

您的主机通常可以帮助您切换到 HTTPS。

有些甚至提供一键式选项来强制使用 HTTPS:

因此,如果您不想编辑 .htaccess 文件,请联系您的主机寻求设置 HTTPS 的帮助。

4. 使用 .htaccess 文件启用密码保护

您可以使用 .htaccess 文件在您的网站或网站的特定区域启用密码保护。

如果您正在进行站点更新并且只希望某些人访问您的站点,这可能很有用。就像你的网页设计师一样。

您需要两个文件来对您的网站进行密码保护:.htpasswd 和 .htaccess。

首先,前往您的网站主机的文件管理器。

在根目录之外添加新文件。将其命名为 “.htpasswd”,然后单击 “CONFIRM”。

重要提示:最好将 .htpasswd 文件放在根目录之外,因为这样可能更安全。

双击 .htpasswd 文件以打开并编辑它。在这里,您将添加访问站点所需的用户名和密码。

然后,您需要加密您的密码(出于安全目的)。像 HTPasswd Generator 这样的免费工具会为您加密您的密码。

只需输入您的用户名、密码,然后单击“Generate .htpasswd file”。并复制输出。

将输出粘贴到 .htpasswd 文件中并保存文件。

最后,打开你的 .htaccess 文件并添加这个指令:

# Password protection

AuthType Basic

AuthName "Restricted Area"

AuthUserFile /path/to/.htpasswd

Require valid-user

确保将 “AuthUserFile” 行的路径更改为 .htpasswd 文件的路径。并保存文件。

前往您的网站。如果该指令有效,您的网站应在加载时显示提示。

输入您的用户名和密码,然后单击“Sign in”以访问您的网站。

对网站进行密码保护的其他方法

如果您使用的是 WordPress,则设置受密码保护的页面的一种更简单的方法是使用该平台的本机密码保护功能。

登录您的网站并前往您要为其设置密码保护的页面或帖子。

在 “Visibility” 旁边,点击 “Public ”。

选择“Password protected”旁边的圆圈,然后输入您要使用的密码。然后,退出提示并单击 “Update”。

现在,当有人尝试访问该页面时,他们会看到如下所示的内容:

他们需要密码才能访问内容。

但这意味着每个页面只能有一个密码,不能为不同的用户设置不同的密码。

对于额外的功能,您可能需要考虑改用 WordPress 插件。

与 .htaccess 相关的常见性能问题

如果您决定依靠 .htaccess 文件对您的网站进行特定更改,请记住这些问题。

速度

使用许多或非常复杂的 .htaccess 文件可能会影响您网站的性能。并使其运行缓慢。

为什么?

因为 Apache 在每次向服务器发出请求时都需要读取和解释每个指令。

因此,请仔细考虑哪些内容必须包含在您的 .htaccess 中,哪些不需要。

并尽可能保持简洁,以避免网站性能问题。由于页面速度是一个排名因素,因此您希望您的网站加载速度快。

虽然 .htaccess 文件没有理想的长度,但确定 .htaccess 文件是否影响侧速度的一种方法是在进行任何 .htaccess 文件更改之前和之后运行速度测试。

Google 的 Page Speed Insights 等免费工具可让您通过输入 URL 来测试页面速度:

如果您的页面在更新后加载缓慢,您可能需要与开发人员交谈以检查您的 .htaccess 文件。

安全

因为 .htaccess 文件允许您重定向整个站点,所以入侵您站点的人可以使用 .htaccess 文件将您的网站重定向到其他位置。

因此,请定期检查您的 .htaccess 是否有任何您未添加的指令。

还要维护您网站的定期备份。理想情况下,您的主机也会为您执行此作,但您可能也希望保留自己的备份。

这样,如果发生某些事情,您可以快速将您的网站恢复到旧版本(也包括旧版本的 .htaccess 文件)。

可及性

配置不当的 .htaccess 指令可能会导致可访问性问题。就像不正确的重定向不会将人们带到正确的页面一样。

如果用户找不到他们想要的内容,他们更有可能离开您的网站(并可能前往竞争对手)。

因此,密切关注 .htaccess 指令配置不当可能引起的任何技术问题非常重要。

最后

您的 .htaccess 文件允许您相对轻松地对您的网站进行强大的更改。

但这些编辑也可能导致不必要的错误。