如何访问和编辑默认的 WordPress .htaccess 文件

已发表: 2023-01-24

每个 WordPress 安装都有一系列“核心”文件。 这些是关键功能背后的文件,其中之一是.htaccess 。 它包括您的 Web 服务器的配置选项。 换句话说,它非常重要。

如果您知道如何查找和编辑.htaccess,则可以更改站点的永久链接结构、设置重定向、提高仪表板的安全性以及进行更多调整。 如果您仔细按照说明操作,您甚至不需要知道如何编码。

在本文中,我们将讨论 . htaccess文件及其工作原理。 我们将向您展示如何查找、访问和编辑该文件。 最后,我们将总结一些常见问题。

什么是 . htaccess文件?

.htaccess或超文本访问文件不是 WordPress 独有的。 每个 Apache Web 服务器都有一个.htaccess文件,其中包含服务器的配置设置。 对于 WordPress,该文件还包含有关您网站永久链接结构的说明。

以下是该文件在大多数网站上的默认外观:

示例 .htaccess 文件

我们说“大多数网站”是因为一些主机自定义其客户的.htaccess文件以包含附加功能。 尽管如此,该文件始终位于 WordPress目录中。

如果您有权访问服务器,则可以找到并编辑.htaccess以对站点的功能进行重要更改。 您可以实施的一些更改包括:

  • 添加重定向。 在服务器级别实施重定向。
  • 更改永久链接结构。 当您更改网站的永久链接结构时,这些更改会反映在.htaccess中。 您可以使用该文件手动更改 URL 结构,而不是在 WordPress 管理面板中这样做。
  • 防止资源盗链。 如果您不希望其他网站使用您网站上的图像或其他元素,您可以通过修改.htaccess文件来禁用热链接。
  • 配置对网站的访问。 .htaccess使您能够使用密码保护目录、将 IP 地址列入白名单以访问仪表板等。

了解.htaccess是一个非常脆弱的文件很重要。 由于它允许您配置服务器级别的规则,因此如果您不小心更改文件可能会破坏您的网站。

您无需了解特定的编程语言即可编辑.htaccess ,尽管 PHP 知识会有所帮助。 如果您按照说明复制必要的代码片段,您可以轻松修改该文件。

如果您不习惯使用代码,一些插件可以为您编辑.htaccess 。 大多数安全和重定向插件通过编辑文件来工作,而无需打开它。 根据您要进行的更改,您可以使用插件来编辑.htaccess

哪里是 。 htaccess文件位于 WordPress 中?

.htaccess文件位于 WordPress 根目录中。 该目录包含您所有的 WordPress 核心文件(如wp-config.php ),以及您上传到网站的所有内容。

您无法访问根目录 WordPress 仪表板中的目录。 要访问.htaccess和其他类似的核心文件,您需要通过文件传输协议 (FTP) 或主机控制面板连接到您的服务器。

由于 WordPress 是开源软件,您可以以任何您想要的方式自由编辑所有文件。 在下一节中,我们将向您展示如何安全地更改.htaccess (同样的建议适用于所有其他 WordPress 核心文件)。

如何编辑您的 WordPress 。 htaccess文件(3 种方法)

编辑 WordPress .htaccess文件需要访问根目录 目录。 但在进行任何更改之前,我们强烈建议您下载.htaccess文件的备份。 由于.htaccess处理服务器配置设置,文件代码中的任何错误都可能导致您的网站无法访问。 如果发生这种情况,您需要恢复以前版本的.htaccess 、删除不正确的代码或创建新的.htaccess文件以重新访问您的网站。 考虑到这一点,最好谨慎行事并准备好最近的备份。

值得庆幸的是,备份.htaccess文件是一个非常简单的过程。 首先通过主机的文件管理器或文件传输协议 (FTP) 软件(如 FileZilla)访问服务器的文件。 导航到您网站的根文件夹,通常称为public_html、www或您的网站名称。 在这里,您会找到.htaccess文件。

如果您没有看到该文件,您可能需要打开一个设置,使您能够查看隐藏的文件。 这将取决于您的主机或 FTP 软件。 如果您使用的是 cPanel,请单击右上角的设置按钮,然后单击显示隐藏文件 (dotfiles)保存

选择显示隐藏文件

使用 FileZilla,您需要在连接到服务器之前切换此设置。 您所要做的就是转到服务器 → 强制显示隐藏文件。

选择在 FileZilla 中显示隐藏文件

找到.htaccess文件后,将其下载到您的计算机并将其重命名为您会记住的名称,例如.htaccess_before-changes。 然后,如果您确实需要恢复所做的任何更改,只需从该文件中复制代码并将其粘贴到服务器上的实时版本中。

1.使用FTP客户端

访问.htaccess文件的最佳方式是使用 FTP 客户端。 在托管控制面板中,FTP 客户端往往比文件管理器更容易导航,并且它们提供更多控制来与您站点的目录和文件进行交互。

这取决于您使用哪个 FTP 客户端。 但是,如果您以前没有使用过 FTP,则可以考虑使用开源 FileZilla 选项。

要连接到 WordPress,您需要您站点的 FTP 凭据。 您在注册托管计划时应该已经收到了这些。 如果没有,您可以在主机控制面板中找到它们。

获得正确的凭据后,通过 FTP 连接到您的网站。 导航到显示wwwpublic_htmlpublic或您网站名称的文件夹。 这些是 WordPress目录最常用的名称。

打开目录,您应该会看到一组文件和文件夹,如下所示:

WordPress 网站上的网站文件列表

我们正在寻找的文件.htaccess位于这个顶级目录中。 找到它后,右键单击该文件并选择查看/编辑(此选项的名称可能会根据您使用的 FTP 客户端而改变)。 这将使用您的默认文本编辑器打开文件。

同样,在执行此步骤之前,请确保将文件下载到安全位置,以便在出错时可以恢复代码。

默认 .htaccess 文件的示例

您对此文件所做的任何更改都需要在“# END WordPress”行之前进行。 为了让事情井井有条,我们建议添加新的代码片段,并与其他代码片段分开一行。

如果可能,还可以添加这样的注释来确定每个片段的作用:

 # This is a comment

这样,如果您返回文件以删除部分代码,您将准确了解每个片段的作用。 准备就绪后,保存对文件所做的更改并关闭它。

FTP 客户端会询问您是否要更新服务器上的文件。 选择显示Yes的选项,仅此而已。 您对.htaccess所做的更改现在应该生效了。

2. 使用你的控制面板

使用 cPanel 编辑 WordPress .htaccess文件相对简单,因为该软件包含文件管理器功能。 但请记住,文件管理器附带的文本编辑器非常简陋。 如果可以,我们建议您改用 FTP 客户端。

如果您更喜欢使用 cPanel,请登录主机控制面板并在“文件”部分下查找“文件管理器”选项。

cpanel 中的工具

在下一个屏幕上,查找名为wwwpublic_htmlpublic或您网站名称的目录。 那是你的 WordPress 根目录 目录,它包含.htaccess文件。

右键单击.htaccess并选择“编辑”选项。 这将打开文件管理器的文本编辑器,使您能够对文件进行更改。 同样,确保您手头有.htaccess文件的当前版本,如果需要可以恢复。

在文件管理器中编辑 .htaccess 文件

我们在上一节中包含了有关如何安全编辑.htaccess的说明。 确保在向文件添加代码之前查看这些说明,以防止服务器出现任何问题。

3. 使用 WordPress 插件

如果您不想使用 FTP 客户端或 cPanel 访问.htaccess文件,一些插件会从 WordPress 仪表板提供此功能。 一个例子是 WebFactory 的 Htaccess 文件编辑器。

WordPress 存储库中 Htaccess 文件编辑器的图像

此插件向仪表板添加了一个新的WP Htaccess 编辑器选项卡。 从这里,您可以使用仅适用于.htaccess的基本文本编辑器。

使用插件编辑 .htaccess 文件

使用插件编辑.htaccess而不是常规文本编辑器的优势在于,您可以访问保存前测试文件等功能。 如果出现错误,您也可以恢复备份。

其他允许您编辑.htaccess的插件包括重定向和 Htaccess 文件编辑器。 在大多数情况下,我们建议使用 FTP 而不是插件。 但是,如果您只打算对.htaccess进行微小的更改,那么插件可能会起到作用。

如何创建新的 WordPress .htaccess 文件

创建一个新的 WordPress .htaccess文件相对简单。 有时,如果转到根目录,您将看不到.htaccess文件 您的 WordPress 网站的文件夹。 这可能是因为 WordPress 尚未生成文件。

有时,在您更改站点的默认永久链接结构之前,WordPress 不会生成.htaccess文件。 为此,请访问 设置 → 永久链接。 WordPress 的默认永久链接结构设置为Plain。 但是您可能想将该结构更改为另一个更用户友好的选项,例如Post nameMonth and name

更新 WordPress 永久链接

当您从Plain更改永久链接结构时,WordPress 将生成一个新的.htaccess文件。 它将包含您选择的新结构的说明。

保存对站点永久链接结构的更改后,返回到 WordPress 根目录 文件夹。 里面应该有一个全新的.htaccess文件,您可以开始编辑它。

如何替换当前的 .htaccess 归档一个新的

如果要将.htaccess文件恢复为其原始内容,您可以删除所有自定义代码或完全替换它。 在许多情况下,替换文件是更简单的选择。 如果您遇到错误并且不确定是代码的哪一部分导致了错误,这尤其适用。

在继续之前,请下载现有.htaccess 文件的副本,以防万一。

首先,您需要制作默认.htaccess文件的新副本。 为此,请在您的计算机上创建一个名为.htaccess的新文件(包括句点)。

然后,使用文本编辑器打开新文件并将以下代码粘贴到其中:

 # BEGIN WordPress RewriteEngine On RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] # END WordPress

这是.htaccess文件的默认代码,它应该适用于每个网站。 唯一的例外是您使用的是多站点安装。 在这种情况下,默认的.htaccess文件应该是这样的,有一个子目录设置:

 # BEGIN WordPress Multisite # Using subfolder network type: https://wordpress.org/support/article/htaccess/#multisite RewriteEngine On RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] RewriteBase / RewriteRule ^index\.php$ - [L] # add a trailing slash to /wp-admin RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L] RewriteCond %{REQUEST_FILENAME} -f [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^ - [L] RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L] RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L] RewriteRule . index.php [L] # END WordPress Multisite

或者,如果您使用多站点的子域设置,代码将如下所示:

 # BEGIN WordPress Multisite # Using subdomain network type: https://wordpress.org/support/article/htaccess/#multisite RewriteEngine On RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] RewriteBase / RewriteRule ^index\.php$ - [L] # add a trailing slash to /wp-admin RewriteRule ^wp-admin$ wp-admin/ [R=301,L] RewriteCond %{REQUEST_FILENAME} -f [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^ - [L] RewriteRule ^(wp-(content|admin|includes).*) $1 [L] RewriteRule ^(.*\.php)$ $1 [L] RewriteRule . index.php [L] # END WordPress Multisite

在任何情况下,保存新的.htaccess文件并将其上传到 WordPress 根目录 目录。 您可以按照我们之前关于使用 FTP 或 cPanel 访问目录的说明进行操作。 进入后,删除现有的.htaccess文件并上传新文件,或者简单地上传并覆盖它。

您可以添加到您的 . htaccess文件

有几种方法可以编辑.htaccess文件并向 WordPress 添加新功能。 每个代码片段都称为“规则”,因为它告诉服务器要做什么。

在本节中,我们将向您介绍几个可以在 WordPress .htaccess文件中实施的规则,并解释它们的作用!

1. 通过 HTTPS 重定向所有流量

将安全套接字层 (SSL) 证书添加到 WordPress 后,您需要将网站配置为通过 HTTPS 加载。 您可以使用多个插件来实现此更改,但您也可以通过向.htaccess文件添加新规则来实现:

 RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

此规则实施 301 重定向,将通过 HTTPS 处理每个 HTTP 请求。 如果您在实施此规则后在浏览器中看到安全错误,则您站点的 SSL 证书可能存在问题。

2.给目录添加密码

.htaccess使您能够用密码保护您网站的特定部分。 密码提示不会显示为登录屏幕,而是直接通过浏览器显示为弹出窗口。 如果您没有输入正确的密码,服务器将阻止您访问该页面。

在此示例中,我们使用代码对 WordPress 管理仪表板进行密码保护:

 <Files /wp-admin> AuthName "Prompt" AuthType Basic AuthUserFile /wp-admin Require valid-user </Files>

您可以通过编辑“/”之后的片段部分来更改要向其添加密码的页面。 例如,您可以在/wp-login.php中添加密码提示,以进一步保护登录页面。

注意:需要密码才能访问主页会中断 Jetpack 的连接。 因此,如果您正在使用 Jetpack 的任何工具,您将不想实施此规则。

3.禁用对特定文件的访问

除了禁止访问网站的某些部分之外,您还可以阻止每个用户访问特定文件。 此规则对于核心文件很有用,因为您不希望任何其他人能够下载或编辑它们。

对于此规则,我们使用代码告诉服务器,如果访问者试图访问与您指定的名称之一匹配的文件,它应该阻止该连接:

 <FilesMatch "^.*(error_log|wp-config\.php|\.[hH][tT][aApP].*)$"> Order deny,allow Deny from all </FilesMatch>

您可以将更多文件添加到该列表,方法是用“|”分隔它们。 请记住,最后应该有一个“|” 规则中第一行斜杠前的符号。

4. 将 IP 地址列入黑名单

.htaccess中最有用的功能之一是能够将特定 IP 地址列入黑名单。 如果您使用黑名单规则包含 IP 地址,它将无法访问您网站的任何页面。 该规则如下所示:

 order allow,deny deny from 192.168.1.1 allow from

该示例使用本地主机 IP,但您可以将其替换为任何其他地址。 要包含多个地址,请使用逗号分隔它们。

请注意,将 IP 列入黑名单意味着拥有该地址的用户将根本无法加载您网站的任何页面。 他们不会看到 404 错误或被重定向到登录页面。 相反,他们会收到“拒绝访问”错误。

了解阻止或允许 . htaccess不会取代在服务器级别或通过安全插件或服务完成的任何 IP 阻止或允许。 这就是为什么确保我们的 IP 地址在服务器级别和您可能使用的任何安全插件中被允许很重要。

5.添加重定向

您可以使用.htaccess文件来实现多种类型的重定向。 早些时候,我们向您展示了如何使用重定向强制 WordPress 通过 HTTPS 加载。 但您也可以实施更直接的规则,将单个页面重定向到第二个地址。

以下是基本 301 重定向在.htaccess 中的样子:

 Redirect 301 /page.html http://www.yoursite.com/page2.html

该文件还支持更复杂的重定向,例如将整个网站重定向到新的 URL。 这是该规则在实际中的样子:

 Options +FollowSymLinks RewriteEngine on RewriteRule (.*) http://www.newsite.com/$1 [R=301,L]

如果您想停止在网站上工作并将其所有流量重定向到不同的属性,则此规则可能很有用。

请记住,301 重定向是“永久性的”。 这意味着搜索引擎将它们解释为“此页面已永久移动到新地址”并传递其部分链接资产。

有关.htaccess文件的常见问题解答

如果您对 WordPress .htaccess文件仍有疑问,本节将为您解答。 让我们先谈谈您可以用这个文件做什么!

你可以用你的 .htaccess 做什么 WordPress 上的文件?

WordPress 上的.htaccess文件用途广泛。 您可以使用它来实现重定向、更新站点的永久链接结构、白名单 IP 地址、密码保护目录、强制站点通过 HTTPS 加载等等。

这些更改要求您使用插件或将代码添加到.htaccess文件。 即使您不熟悉编码也可以执行此操作,因为这些片段可以在线找到,包括在本文中!

如果找不到 WordPress .htaccess文件怎么办?

您可能无法在 WordPress 根目录中找到.htaccess文件 目录(如果尚未创建)。 在某些情况下,WordPress 不会生成文件,除非您将网站的永久链接结构从 Plain 更改为 到另一个选项。 在本文的前面部分,我们解释了如何执行此操作。

.htaccess更改会立即生效吗?

您对.htaccess所做的任何更改都应立即生效。 您无需重新启动服务器即可使更改生效。

如果您编辑文件并且没有看到更改立即反映出来,则可能是您的网络托管服务商出现了问题。 在某些情况下,托管服务提供商可能不会为您的.htaccess文件提供覆盖服务器配置的必要权限。 这在共享托管计划中尤为常见。

我应该使用插件来编辑 . 访问权限

许多插件可以编辑.htaccess ,但其中一些工具不允许您访问文件本身。 例如,如果您使用重定向插件,它可能会通过.htaccess 实现重定向,但不会向您显示文件中的更改。

一些工具使您能够从仪表板编辑.htaccess 。 但是这些插件通常提供有限的编辑器功能,使得实施更改变得更加困难。 只要有可能,我们建议您使用 FTP,这样您就可以使用您最喜欢的文本编辑器与.htaccess进行交互。

您的 WordPress 网站的 . htaccess文件被黑客入侵?

如果攻击者可以访问您的服务器,他们还可以访问.htaccess文件并使用它来破坏您网站的某些部分,实施恶意重定向,甚至将您完全锁定在网站之外。

定期备份您的网站对于保护用户数据和避免因攻击而停机至关重要。 借助 Jetpack Security,您可以访问实时自动备份和恶意软件保护。

Jetpack 还会为您的网站添加防火墙。 此功能有助于进一步防止其他攻击,例如 DDoS 事件或尝试暴力破解 WordPress 登录页面。

我如何编辑 . Nginx 中的htaccess文件?

.htaccess文件是 Apache 服务器独有的。 它们仍然很常见,因为 Apache 是市场上最受欢迎的服务器软件之一。 但它不是唯一的。

许多流行的 WordPress 网络主机都使用 Nginx,因为它比 Apache 具有多项优势。 但是 Nginx 服务器没有.htaccess文件。 这意味着您可能无法实施本文中讨论的一些定制,或者过程可能完全不同。

什么是默认 WordPress .htaccess 的示例 文件?

默认情况下, .htaccess文件在大多数 WordPress 网站上看起来应该是一样的。 如果您未对其进行任何更改,则文件应包含以下代码:

 # BEGIN WordPress RewriteEngine On RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] # END WordPress

您可以使用此代码将.htaccess文件恢复到其原始设置,以防在自定义时出现任何错误。 我们在本文前面的部分中包含了有关如何替换文件的说明。

改变 WordPress 。 htaccess文件

了解如何访问和编辑 WordPress .htaccess文件可以帮助您更改网站上的关键功能并确保其安全。 如果您知道如何编辑它,您可以将此文件用于从实现重定向到密码保护目录的任何事情。

由于您处理的是 WordPress 核心文件,我们始终建议您提前创建备份。 开始处理该文件后,您可以使用本文中的代码片段来实现新功能。

编辑.htaccess文件只是保护 WordPress 网站的一种方法。 Jetpack Scan 会持续监控您的站点是否存在威胁,通知您任何问题,并帮助您解决任何问题。 立即查看 Jetpack Scan!