WordPress .htaccess 文件的终极指南
已发表: 2022-08-10我真的不好理解:我的默认代码看起来像中文。
我因我独特的外表而脱颖而出,因为我的名字没有扩展名。
我也有神奇的力量。 如果您正确设置我,我可以执行以下操作:
- 提高您网站的安全性。
- 提高页面的加载速度。
- 设置重定向。
- 限制垃圾邮件。
- 甚至开几个玩笑:那是我厚脸皮的一面。
你还不知道我是谁? 我是您的 WordPress 网站的.htaccess
文件。 让我们在本指南中更好地了解我的工作方式。
在这些行中,您将发现三十多个配置我的指南。 它们以即用型代码的形式实现,您只需在家中复制和粘贴即可。
继续阅读,你不会失望的!
概述
- 什么是 .htaccess 文件?
- .htaccess 文件如何工作?
- 如何创建 .htaccess 文件
- 自定义 .htaccess 文件前的预防措施
- 如何正确修改您的 .htaccess 文件。
- 如何在网站根目录自定义 .htaccess 文件?
- 如何在 wp-admin 中自定义 .htaccess 文件
- 如何在 wp-includes 中自定义 .htaccess 文件?
- 如何自定义 wp-content 中的 .htaccess 文件?
- 如何自定义 wp-content/uploads 中的 .htaccess 文件?
- 最后回顾一下 WordPress 中的 .htacess 文件
最初写于 2015 年 10 月,本文最后更新于 2022 年 7 月。
什么是 .htaccess 文件?
.htaccess
文件是 Apache 的配置文件,Apache 是大多数 Web 服务器用来运行的软件。 该文件的内容将向 Apache 提供指令,以便服务器以某种方式运行。
请注意,某些 Web 主机仅在 NGINX 服务器上运行。 例如,飞轮就是这种情况。 他们没有.htaccess
文件。
几乎所有使用 WordPress 的网站都有一个
.htaccess
文件。 事实上,WordPress 在安装过程中自动创建它,包括网站的永久链接设置。
当您转到“设置”>“永久链接”以选择 URL 格式(通常为“帖子名称”)时, .htaccess
文件被修改。
.htaccess 文件如何工作?
您应该知道一个网站可以有多个.htaccess
文件。
首先,有一个主.htaccess
文件,位于网站的根目录。
网站的根目录是 WordPress 文件( wp-admin
、 wp-includes
和wp-content
文件夹以及其他一些文件)在您的服务器上的位置。 例如,您可以通过连接到 FTP 客户端来访问它们。 此根文件夹的名称可能因您的托管服务提供商而异。 例如,它在 Bluehost(附属链接)中称为public_html
,在 OVH 中称为www
。
主
.htaccess
文件的内容将影响整个网站。
可以在子目录中创建其他.htaccess
文件。 例如,对于 WordPress,可以将其放在wp-admin
或wp-content/uploads
目录中。
辅助.htaccess
文件将影响它们所在的目录以及它们的子目录。
如果我们想象.htaccess
文件存在于wp-content/uploads
中,则uploads
目录及其所有子目录将受到.htaccess
文件中定义的影响。
如何创建 .htaccess 文件
从逻辑上讲,您的网站应该至少有一个.htaccess
文件,该文件位于您网站的根目录。 您可以使用您喜欢的代码编辑器(Sublime Text、Brackets、Notepad++、Coda 等)对其进行编辑。
还有其他解决方案,例如 Htaccess 文件编辑器插件,可以直接从您的 WordPress 仪表板进行编辑。
但是,如果有任何问题,你必须通过你的 FTP 客户端和代码编辑器,所以你还不如直接手动做。
如果您需要将.htaccess
文件添加到子目录,请按照这些说明进行操作。
从您的计算机创建一个 .htaccess 文件
- 创建一个新的文本文件并将其命名为
htaccess.txt
。 - 根据需要编辑它。
- 将其发送到服务器的根目录。
- 将其重命名为
.htaccess
。
从您的服务器创建一个 .htaccess 文件
- 右键单击它应该所在的目录。
- 添加一个新文件并将其命名为
.htaccess.
- 使用您的代码编辑器(Notepad++、Coda、Sublime Text 或其他)对其进行编辑。
恭喜,您现在知道.htaccess
文件的用途以及如何创建它。 在找出可以添加的指南之前,请记住要小心!
自定义 .htaccess 文件前的预防措施
自定义.htaccess
文件的代码非常简单(尤其是使用本文其余部分提供的代码片段),但您仍然不应该大刀阔斧地进入它。
在进行任何更改之前,我建议您首先备份您的 WordPress 网站。 为此,您可以使用像 UpdraftPlus 这样的专用插件。
接下来,保存.htaccess
文件的初始内容。 为此,您可以:
- 将服务器上的
.htaccess
文件复制到.htaccess-initial
文件中。 - 将文件的内容复制到计算机上的文本文件中。
如果您有问题,您可以轻松恢复原始内容。
如何正确修改您的 .htaccess 文件。
要进行任何更改,请按照以下步骤操作:
- 在代码编辑器中打开文件。
- 将您添加的内容放入文件中。
- 保存。
- 更新您的网站以查看是否一切正常。
刷新您的网站非常重要:这将有助于查看添加的代码是否存在任何问题。
一般来说,如果出现问题,屏幕上会出现 500 错误“Internal Server Error”:
在这种情况下,请撤消您的更改并再次保存。 一切都应该恢复正常。
有时,某些主机不接受.htaccess
文件中的特定代码……
你将不得不处理它。
请联系房东的客户服务以了解更多信息。 希望它只需要稍作修改即可使其正常工作。
您是否遇到 WordPress 错误,例如典型且普遍存在的 500 错误? WPMarmite 提供了解决主要问题的综合指南。
这一次,一切都好。 您知道.htaccess
文件是如何工作的,如何正确创建和编辑它。
现在了解如何在 5 个不同的地方自定义它:
- 在网站的根
- 在
wp-admin
- 在
wp-includes
- 在
wp-content
- 在
wp-content/uploads
让我们从网站的根目录开始。 你会看到,这将是最一致的部分。
与所有计算机语言一样, .htaccess
文件允许您包含注释。 为此,只需将#
符号放在一行的开头,以便忽略该行。 这对于记住代码执行的行非常方便。 您将在本文的示例中看到注释。
如何在网站根目录自定义 .htaccess 文件?
如果您的安装顺利,您会在网站的根目录中找到一个.htaccess
文件。 它将包含以下代码:
如果您在多站点模式下使用 WordPress, .htaccess
文件的默认代码会有所不同。 在大多数情况下,这不会影响您。
现在您已经找到了这个文件,您将能够使用下面的代码片段来增强它的内容,以完成一些特定的事情。 这可能与安全有关,但也可能与其他事情有关。
确保不要在注释# BEGIN WordPress
和# END WordPress
WordPress 之间包含任何代码,因为在某些情况下可能会修改此代码。
另一个提醒:在进行任何更改之前保存您的原始.htaccess
文件。 如果您有任何问题,您需要能够返回。
禁用显示目录
默认情况下,如果您尝试访问网站的目录,服务器将显示它们。 格式将如下所示:
你可以想象这是黑客的生计。 他们可以看到您网站上的文件这一事实将帮助他们更好地攻击它。 将以下代码插入您的.htaccess
文件以保护您的网站:
也可以使用此代码来防止目录列表:
隐藏服务器信息
对于某些托管服务提供商,显示的页面可能包含服务器信息。 这些信息可以为潜在的攻击者提供详细信息。
因此最好使用以下代码隐藏它们:
启用以下符号链接
我一定是在跟你胡说八道,但是将这行代码插入到你的主.htaccess
文件中很重要:
这将允许您的服务器遵循所谓的符号链接,即短代码。
将您的服务器设置为正确的时间
这并不重要,但如果您的服务器在国外,您可以使用以下代码行告诉它设置为您的时区:
设置默认字符编码
以下代码允许您将文本和 HTML 文件的字符编码设置为UTF-8
(一种计算机字符编码)。 否则,口音可能会被误解。
保护 wp-config.php
您网站的配置文件 ( wp-config.php
) 包含连接到数据库的凭据。
这是您网站上最敏感的文件。 它可能成为潜在黑客的目标。 可以通过将此代码添加到主.htaccess
文件来保护它:
保护 .htaccess 文件本身
与wp-config.php
文件一样, .htaccess
文件必须得到最大程度的保护。 为此,请插入以下代码:
限制评论垃圾邮件
如果你有博客,你和我一样清楚,垃圾评论真的很痛苦。
值得庆幸的是,有一个技巧可以直接在.htaccess
文件中防止这种情况发生。 这不是一个快速解决方案,但结合 Akismet 插件,应该过滤掉大部分垃圾邮件。
不要忘记将mywebsite.com
替换为您的域名。
避免检测到作者的 ID
即使您使用复杂的用户登录,它仍然可以被检测到。
当然,我假设您还没有将它与您的主题一起公开展示(它可能会发生)。
尝试键入mywebsite.com/?author=x
将 x 替换为 1 作为管理员或您的一位作者的 ID。 如果您没有受到保护,您将被重定向到类似mywebsite.com/author/author_id
的页面。
这就是您如何在两秒钟内找到用户 ID。 从那里,剩下的就是尝试猜测您的密码。
为了保护自己免受这种技术的侵害,请使用以下代码:
禁用图片的盗链
什么是盗链? 别担心,我会解释一切的。
基本上,一旦您将图片添加到您的网站(例如在一篇文章中),任何人都可以复制您的一张图片的 URL,并将其显示在他们的网站上。
您可能认为这还不错,但是如果出于某种原因,一个非常受关注的网站选择了您的图像并将其显示在其中一个页面上,则会向您的服务器发出请求。
盗链实际上是在窃取带宽。 如果您的网站安装在小型共享服务器上,您的主机可能不会欣赏它,因为资源有限。
为避免此问题,请在.htaccess
文件中插入并自定义此代码:
要允许某些网站显示您的图像,请使用以下代码:
您还可以自定义将代替请求的图像显示的图像。 我添加了一些简单的东西,但你可以更有创意。
禁止 IP 地址
如果您注意到某些 IP 地址过于频繁地尝试登录您的网站管理(例如使用 Login Lockdown 插件),您可以通过禁止其 IP 地址来摆脱它们。
您还可以检索垃圾评论发送者的 IP 地址,以禁止他们访问您的网站。
此解决方案不是永久性的,因为您的攻击者可能会更改 IP 地址,但它可能对技术较弱的人有效。
阻止来自某些网站的访问者
如果您意识到一个不合规的网站已链接到您的网站,并且您不希望该网站的访问者访问您的网站,请使用以下代码:
将访问者从一个网站重定向到另一个网站
更进一步,您可以将访问者从某些网站重定向到另一个网站。
这是要使用的代码:
创建重定向
.htaccess
文件允许您进行重定向(将 URL A 重定向到 URL B)。
这对于重定向几个页面很方便,但是如果你想创建很多重定向,我推荐我在本文中介绍的 WordPress 重定向插件。
如何在.htaccess
文件中创建重定向:
将不带 www 的地址重定向到带 www 的地址
建立网站时,首先要完成的操作之一是将不带www
的网站重定向到带www
的版本(反之亦然)。
如果您在下次创建网站时进行测试,您会发现这两个地址不一定链接到您的网站。
在某些情况下,托管公司会自动处理此问题,或者必须通过托管网站上的管理页面激活它(例如,Gandi 就是这种情况)。
如果您需要手动执行此重定向,请通过将mywebsite.com
替换为您的网站来使用以下代码:
将带 www 的地址重定向到不带 www 的地址
另一方面,如果您不想在网站名称前加上www
(如 WPMarmite),则可以重定向到没有www
的版本。
将以下代码插入到.htaccess
文件中:
警告:不要将此代码与前一个代码一起使用,否则您的网站将遭受重定向循环(因为没有www
的版本将重定向到带有www
的版本,这将重定向到没有www
的版本等)。
重定向到 HTTPS
如果您在网站上设置了 SSL 证书以将其切换为 HTTPS,则需要确保所有访问者都在浏览您网站的安全版本。
否则,敏感信息可能会被黑客恢复(例如个人或银行数据)。
使用以下代码将您的整个网站切换到 HTTPS:
强制下载特定文件
当您想从网站下载文件时,您的浏览器有时会尝试打开它以显示它。
就个人而言,我觉得这对 PDF 文件很方便。 另一方面,对于其他类型的文件来说是非常不愉快的。
插入以下代码以使您的访问者直接下载具有这些扩展名的文件(根据需要修改它们):
创建自定义维护页面
在上一篇文章中,您发现了一系列维护插件。 但是,在某些情况下,维护页面将无法显示。
这很烦人,不是吗?
要获取维护页面,您可以使用以下代码:
为此,您需要:
- 创建一个
maintenance.html
文件,其内容表明该网站正在维护中。 - 在第 4 行添加您的 IP 地址(确保保留“
\
”)以允许您访问该网站(在该网站上查找您的 IP 地址)。
维护完成后,在每行前面加上“ #
”作为注释传递。
启用缓存
.htaccess
文件允许您在访问者的浏览器中缓存您网站上的某些文件,以便它们加载更快。
事实上,浏览器不需要重新下载缓存中的文件。
为此,请插入以下代码:
文件缓存将在为每种文件类型指定的持续时间内或访问者清除其缓存之前有效。
为了通过缓存加速您的网站,我建议使用高级 WP Rocket 插件(附属链接)。 由于设置简单快捷,因此非常适合 WordPress 初学者。 在它的帮助下,您无需使用上面提供的代码片段(一段代码)。
启用压缩
除了到目前为止我们看到的所有内容之外,还可以在将某些资源从服务器传输到浏览器之前对其进行压缩。
文件压缩意味着更快的页面加载速度。 因此,我建议您实现此代码以提高您的网站速度:
禁止访问某些脚本
为了发挥作用,WordPress 使用位于wp-includes
目录中的脚本。 但是,没有理由直接访问它们。 使用此代码限制访问:
防止文件注入
黑客可能会尝试将文件发送到您的服务器以控制您的网站。 要在他们的路径中使用扳手,您可以在.htaccess
文件中包含以下代码:
防范其他威胁
在 Facebook 上,Richard 告诉我,可以通过在.htaccess
文件中添加几行来防止点击劫持和其他威胁。
供您参考,点击劫持是一种使用frame
或iframe
标签帮助访问者相信他在您的网站上的技术,当他们不在时。
因此,下面的代码有助于保护您免受点击劫持,对抗 MIME 嗅探等其他威胁,并在 XSS 攻击的情况下阻止内容(这会将 HTML 或 JavaScript 注入保护不良的变量中)。
就是这样,您刚刚完成了一大堆优化以合并到位于网站根目录的.htaccess
文件中。
让我们继续: wp-admin
、 wp-icludes
、 wp-content
和wp-content/uploads
文件夹的新代码。
如何在 wp-admin 中自定义 .htaccess 文件
wp-admin
是您网站的巢穴。 您可以在这里撰写文章、配置菜单、设置主题等等。
不用说,未经授权的人不应进入这个避风港。 否则,请注意后果。
以下是您可以使用放置在网站wp-admin
文件夹中的.htaccess
文件来加强安全性的方法。
限制对网站管理的访问
只有拥有列出 IP 的人才能访问wp-admin
文件夹。 防止陌生人登录您的网站非常方便(即使他们有正确的密码)。
添加第二个身份验证
当您登录到 WordPress 网站的管理员时,您需要使用登录名和密码。 好吧,可以通过.htaccess
文件添加第二个文件,然后再添加另一个文件。
首先,在wp-admin
目录中创建一个名为.htpasswd
的文件,并将用户名和密码对插入其中。 使用本网站指导您:
在第一个字段中输入您要使用的用户名,在第二个字段中输入您的密码,然后单击“生成.htpasswd
文件”。
然后复制将出现在.htpasswd
文件中的行。 如果您需要创建多个用户,请重复该过程并在新行中添加新的用户名/密码对。
例如,您可以获得这种文件:
接下来,将以下代码插入到.htaccess
文件中:
此操作的棘手部分是正确获取.htpasswd
文件的完整路径。 要确定找到它,请创建一个info.php
文件并插入以下代码:
转到yourwebsite.com/wp-admin/info.php
,您将获得要放置在.htaccess
文件中的.htpasswd
文件的实际路径。 找到正确的路径后,删除info.php
文件。
如果您按原样插入此代码,AJAX 请求将不再起作用。 使用以下代码段解决问题:
如果您了解我刚才提到的所有内容,您应该有双重身份验证来访问 WordPress 管理。
让我们继续下一部分。
如何在 wp-includes 中自定义 .htaccess 文件?
阻止直接访问 PHP 文件
在wp-includes
中创建一个.htaccess
文件,并将以下代码粘贴到其中,以防止 PHP 文件被直接加载。
以上代码由 Sucuri 插件提供。
如何自定义 wp-content 中的 .htaccess 文件?
阻止直接访问 PHP 文件
对于wp-content
文件夹,代码类似,只是删除了异常:
如何自定义 wp-content/uploads 中的 .htaccess 文件?
阻止直接访问 PHP 文件
使用相同的代码,保护存储媒体的文件夹,以防止 PHP 文件被外部某人(例如讨厌的黑客)执行。
最后回顾一下 WordPress 中的 .htacess 文件
正如您在本指南中所发现的, .htaccess
文件是一个非常强大的工具,用于配置您的网站服务器。
如果小心谨慎地处理,它可以提高您网站的安全性、性能、搜索引擎优化甚至用户体验。
#WordPress 网站的#htaccess 文件是一个强大的工具。 了解它是如何工作的,并按照 WPMarmite 的提示像厨师一样进行设置。
再次,我建议您始终保留原始.htaccess
文件的备份,以便在出现任何问题时执行重置。
非常小心地进行更改(我会警告你的!)。 根据您网站的主机,可能会出现错误或不兼容性。
虽然本文已经介绍了很多内容,但可以使用各种资源进一步设置.htaccess
:
- WordPress 文档和 Apache 文档(运行您的服务器的软件)。
- Perishable Press 博客,其中甚至有一本关于该主题的付费书籍。
在我说再见之前,我想在评论中获得您的意见。 您是否自定义了.htaccess
文件?
最重要的是,随时与其他读者分享您习惯使用的任何代码片段。