什么是 WordPress .htaccess 文件以及如何配置它?

Rifat WordPress Tutorials Apr 19, 2022

.htaccess 是一个非常需要的 WordPress 核心文件,我们通常使用它来修改或覆盖服务器级配置。 很多时候,更新或更改 WordPress .htaccess 文件的规则可以轻松解决复杂的操作问题。 这是 WordPress Web 开发人员非常熟悉的话题。 在今天的教程中,我们将尝试演示有关 .htaccess 文件的所有内容,并学习如何在 WordPress 上配置 .htaccess 文件。 今天的帖子对于新的 WordPress 开发人员来说意义重大。 因此,让我们毫不拖延地向前迈进。

.htaccess 文件? 是什么

Thie .htaccess 文件是我们用来管理 Apache 网络服务器的配置文件。 它为服务器提供了控制我们网站的多种指令,例如重定向用户、对管理部分实施密码保护、保护文件目录等。 它位于 WordPress 的根文件夹中,并最终控制重定向、缓存和永久链接。

.htaccess 文件位置

如果我们通过 Cpanel 从文件管理器访问网站的根目录,我们会看到几乎所有的文件都有通常的标识名称和扩展名。 但是,.htaccess 文件没有通用名称或扩展名。 它的名称以点号开头,因为该文件的位置在 Unix 和 Linux 平台上是隐藏的。 如果您在根目录中没有找到 .htacess 文件,那么您的 FTP 客户端可能隐藏了该文件。 在这种情况下,您需要找到一个选项来显示来自 FTP 客户端的隐藏文件以查看 .htaccess 文件。

在这里,您可以看到一些以 .htaccess 开头的文件名,其颜色比其他文件的颜色要浅。 如果这些文件在根目录中不可用,我们将讨论查看这些文件。

创建令人惊叹的网站

使用最好的免费页面构建器 Elementor

现在开始

在 WordPress 中使用 .htaccess 文件

.htaccess 文件用于重定向 URL,使 URL 易于阅读和 SEO 友好。 我们已经知道 .htaccess 文件位于根目录中,它之所以保留在这里是因为我们将 WordPress 安装在同一目录中。 这是另一个名为 index.php 的文件。 您可以从 WordPress 仪表板轻松管理已发布项目的链接格式。 您可以从设置> 永久链接选项中轻松放置包含月、日、帖子名称、类别的 URL。

如果您更改格式,WordPress 会直接将其保存在 .htaccess 文件中。 URL 结构的更改将在 .htaccess 文件中重写,并且更改将立即发生。 这是一个简单的示例,说明 URL 重写在目录上的外观。

# BEGIN WordPress
# The directives (lines) between "BEGIN WordPress" and "END WordPress" are
# dynamically generated, and should only be modified via WordPress filters.
# Any changes to the directives between these markers will be overwritten.
<IfModule mod_rewrite.c>
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]
</IfModule>
 
# END WordPress

如果您在 WordPress 中安装了更多插件,这些规则的数量可能会有所不同。 例如,您网站的已激活安全插件可以在列表中添加更多规则,以防止从某些被全球列入黑名单且只有白名单 IP 可以访问的 IP 地址访问该网站。 此外,这些插件可以为 .htaccess 文件带来许多规则,以阻止垃圾邮件和评论、盗链图像和匿名威胁。

上图是All in One WP Security插件设置的 .htaccess 文件中的规则示例。

此外,您会发现不同类型的文件是由您在 WordPress 中安装的缓存插件创建的以进行优化。 以下是有关缓存插件设置的过期日期的规则示例。

查找和更新 .htaccess 文件

Apache Web 服务器和 .htaccess 文件一起工作。 这意味着您在 Nginx 或其他服务器上找不到它。 如果您在根目录中找不到它,请通知您的托管服务提供商检查它是否在 Apache 或任何其他服务器技术上运行。

此外,WordPress 需要具有访问和修改 .htaccess 文件所需的权限。 更改文件权限以给予 WordPress 足够的授权来更新文件。

.htaccess 文件的基本理解

网站中的安全插件不仅仅是在 .htaccess 文件上写几行代码。 我们需要了解此文件的基础知识和工作方法,以更好地了解修改将如何发生。 此外,这些基本知识将帮助您添加规则以执行简单的任务,例如重定向 URL、页面安全和更改 URL,而无需安装任何插件。

在进行任何更改之前,您需要对 .htaccess 文件进行备份,因为如果我们不这样做,错误将会付出很多代价。 甚至您的网站也可能表现异常,您的设计布局可能会崩溃。 如果发生意外情况,您可以替换更改的文件并立即让您的网站运行。

您可以在 .htaccess 文件中编写注释和代码。 注释以 # 作为第一个字符开始。 让我们看看如何在 .htaccess 文件上写东西。

旧网址重定向

假设您将有一个广为人知的帖子,其中包含不再起作用的旧 URL。 它可能与您不再在您的网站上销售的产品相关联。 在这种情况下,您可能希望通过旧 URL 将访问者重定向到您的新网页。 您可以在 .htaccess 文件中添加以下代码行。

Redirect 301 /some-old-post-url/ /new-post-url/

您可以使用相同的命令将整个网站重定向到新的 URL。 例如,我们想将一个页面重定向到我们的主页。 这将是代码。

Redirect 301 /post-url/ https://codewatchers.com/en

缓存常用文件

缓存是我们的浏览器或设备存储的一组特殊临时文件,用于使应用程序/网站运行得更快、更高效。 如果我们第一次访问网站/应用程序,缓存会将图像和其他相关数据存储在浏览器/设备上。 对于网站,.htaccess 文件拥有该缓存功能的规则,而不是为每次新访问重复加载数据。 以下是 .htaccess 文件上的缓存功能示例。

<IfModule mod_expires.c>
ExpiresActive On
 
ExpiresByType text/css A604800
ExpiresByType text/javascript A1296000
ExpiresByType application/javascript A1296000
ExpiresByType application/x-javascript A1296000
 
ExpiresByType image/jpeg A2592000
ExpiresByType image/png A2592000
</IfModule>

这里写在A之后的数字表示要缓存的文件的总秒数。 以另一种方式,您可以添加人类可读的时间段而不是秒。

<IfModule mod_expires.c>
ExpiresActive On
 
ExpiresByType text/css "access plus 1 week"
ExpiresByType text/javascript "access plus 15 days"
ExpiresByType application/javascript "access plus 15 days"
ExpiresByType application/x-javascript "access plus 15 days"
 
ExpiresByType image/jpeg "access plus 1 month"
ExpiresByType image/png "access plus 1 month"
</IfModule>

重定向到安全页面

我们还可以使用 .htaccess 文件将用户从一个 HTTPS 页面重定向到另一个页面。 在这里,R 标志命令服务器发送所需的响应代码, L标志命令停止处理设置的规则。

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

结论

今天我们对.htaccess文件进行了详细的介绍,以及如何根据自己的需要进行修改。 对这个文件进行简单的调整可以避免为缓存或安全方案安装繁重的插件—last,如果它们不存在,一些常见的规则可以添加到您的 .htaccess 文件中。 我希望你觉得这篇文章有用,如果是这样,请给我们留下关于这篇文章的宝贵意见或任何建议。 此外,您可以分享帖子,这将是非常棒的。

Divi WordPress Theme