如何用 .htaccess 文件保护、优化和控制 WordPress 中的重定向

.htaccess 是 WordPress 的一个重要核心文件,通常用于添加、修改和覆盖服务器级别的配置、安全性和性能参数。

简单来说,它可以让网站地址更美观、自动将访问者重定向到新的地址,并通过阻止未经授权的访问来提高网站的安全性。

在大多数情况下,可以通过更新或更改 WordPress .htaccess 文件中的规则,来解决服务器层面的运行问题。

然而,许多网站所有者并不了解 .htaccess 文件的真正潜力,因此错过了优化服务器(以及网站)的机会。

为了帮助 WordPress 用户,本篇文章会详细介绍如何找到并编辑 WordPress .htaccess 文件,以及各种规则的应用方法。

注意:下面提及的规则和配置适用于 Apache 2.4。

图片[1]-深入解析 WordPress .htaccess 文件:优化网站性能与安全性的终极指南

什么是 WordPress .htaccess 文件?

.htaccess 文件可以看作是网站的控制中心,它包含了一系列规则,用于管理 WordPress 网站与服务器之间的所有通信。

可以在 WordPress 安装主目录中找到 .htaccess 文件。WordPress 默认使用该文件来处理诸如重定向管理和固定链接结构设置等任务。

具体来说,.htaccess 文件(也称为服务器配置文件)在 WordPress 中可以用于以下任务:

  • 控制网站页面的访问权限
  • 提高网站的安全性和性能

此外,可以将 .htaccess 文件放置在网站的任何文件夹中,来改变该文件夹的行为。

⚠️ 重要提醒!

.htaccess 文件的修改非常敏感,哪怕是一个符号(如 .)放错位置,都可能导致网站崩溃。所以,在对 .htaccess 文件进行任何更改之前,务必 备份 到一个安全的存储位置。

如何在 WordPress 中使用 .htaccess 并发挥其优势?

要在 WordPress 中使用 .htaccess 文件,可以按照下面步骤进行:

1. 查找 .htaccess 文件

.htaccess 文件位于 WordPress 网站的根目录。可以用 文件管理器FTP 客户端 进入网站的主文件夹查找它。要注意的是,.htaccess 文件可能默认是隐藏的,如果看不到它,需要调整文件管理器的设置,使其显示隐藏文件。

2. 调整文件管理器设置

如果网站的 .htaccess 文件不可见,可能需要修改文件管理器的设置,使其显示隐藏文件。这一步能确保可以顺利访问和修改 .htaccess 文件。

3. 创建备份

在对 .htaccess 文件进行任何更改之前,务必先备份原始文件。这样,即使在修改过程中出现问题,也可以随时恢复到原始状态,避免影响网站正常运行。

.htaccess 文件的作用及优势

可以通过 .htaccess 文件来优化和保护 WordPress 网站,下面是一些常见用途及其优势:

功能描述
自定义固定链接结构创建对用户和搜索引擎友好的 URL,提升 SEO 和可访问性。
重定向(Redirects)使用 301 重定向 进行 URL 变更或内容迁移,确保良好的用户体验,并保持 SEO 排名。
安全增强通过添加规则,限制对敏感区域、目录和文件的访问,防止未经授权的访问。
防止盗链防止其他网站直接调用你的资源,保护带宽,确保内容仅通过你的网站访问。
缓存和压缩通过 .htaccess 启用浏览器缓存Gzip 压缩,加快页面加载速度,改善用户体验。
自定义错误页面创建自定义错误页面(如 404),让用户在遇到错误时获得更好的体验。

如何在 WordPress 中找到 .htaccess 文件?

WordPress 社区推荐用 NGINXApache 作为网站服务器。如果 WordPress 网站运行在 NGINX 服务器上,不会看到 .htaccess 文件,因为 NGINX 不用该文件。

但如果 WordPress 网站放在 Apache Web 服务器 上,可以在网站的 根目录public_htmlwww 文件夹)中找到 .htaccess 文件。

如何访问 .htaccess 文件?

你可以用 FTP 客户端(如 FileZilla)连接服务器,并进入 WordPress 网站的根目录来访问 .htaccess 文件。例如,某个网站的根目录路径可能是:/applications/sqzucfcyqb/public_html

图片[2]-深入解析 WordPress .htaccess 文件:优化网站性能与安全性的终极指南

找不到 .htaccess 文件怎么办?

如果没有看到 .htaccess 文件,可能是因为它是隐藏文件(没有文件扩展名),通常出于安全考虑,文件管理器会默认隐藏它。

要访问 .htaccess 文件,要在 FTP 客户端(如 FileZilla)的服务器选项中,勾选 “Force Showing Hidden Files”(强制显示隐藏文件),这样 .htaccess 文件就会显示出来。

图片[3]-深入解析 WordPress .htaccess 文件:优化网站性能与安全性的终极指南

WordPress 默认 .htaccess 文件

默认的 .htaccess 文件位于 WordPress 安装的 根目录,通常是隐藏的,但可以通过 FTP 客户端(如 FileZilla)访问。

找不到 .htaccess 文件怎么办?

如果在根目录中仍然找不到 .htaccess 文件,你可以手动创建一个新的 .htaccess 文件:

  • 记事本(或其他文本编辑器)创建一个空白文件。
  • 将文件命名为 “.htaccess”确保文件名以 . 开头)。
  • 在保存时,选择 “文件类型”“所有文件(All Files)”,然后保存到桌面。
    图片[4]-深入解析 WordPress .htaccess 文件:优化网站性能与安全性的终极指南
    • 通过 FTP 客户端(如 FileZilla)将 .htaccess 文件上传到 WordPress 安装的 根目录

      ⚠️ 注意
      文件名必须是 “.htaccess”,而不是 “htaccess”(必须带有 . 号)。

      WordPress 默认 .htaccess 文件内容

      WordPress 的默认 .htaccess 文件内容如下:

      # BEGIN WordPress
      <IfModule mod_rewrite.c>
      RewriteEngine On
      RewriteBase /
      RewriteRule ^index\.php$ - [L]
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteRule . /index.php [L]
      </IfModule>
      # END WordPress

      这个 .htaccess 文件的主要作用是管理 WordPress 固定链接,确保所有的 URL 结构正确运行。

      如何创建 .htaccess 文件?

      可以按照以下步骤,在 WordPress 中创建 .htaccess 文件:

      1. 进入 WordPress 仪表盘
      2. 点击 设置(Settings) > 固定链接(Permalinks)
      3. 点击 保存更改(Save Changes) 按钮。
      图片[5]-深入解析 WordPress .htaccess 文件:优化网站性能与安全性的终极指南

      完成以上操作后,WordPress 会在根目录下自动生成默认的 .htaccess 文件。

      默认的 .htaccess 文件仅用于管理 WordPress 固定链接。但你可以手动修改该文件,添加额外的规则,以控制 Apache Web 服务器 如何处理网站的相关请求和操作。

      如何在 WordPress 中编辑 .htaccess 文件?

      要编辑 WordPress 的 .htaccess 文件,可以用 文件管理器(由 WordPress 主机提供)或 FTP 客户端(如 FileZilla)。

      编辑 .htaccess 文件的方法

      • 使用 FTP 客户端(如 FileZilla)连接服务器
      • 进入 WordPress 根目录(通常是 public_html 文件夹),找到 .htaccess 文件。
      图片[6]-深入解析 WordPress .htaccess 文件:优化网站性能与安全性的终极指南
      • 右键点击 .htaccess 文件,选择 “查看/编辑(View/Edit)”,用自己喜欢的文本编辑器打开它。
      图片[7]-深入解析 WordPress .htaccess 文件:优化网站性能与安全性的终极指南
      • 进行所需的修改,然后保存文件

        另一种编辑方法

        也可以先将 .htaccess 文件下载到本地,在电脑上修改后,再通过 FTP 客户端文件管理器 将修改后的文件上传,替换服务器上的 .htaccess 文件。

        如何使用 cPanel 编辑 WordPress .htaccess 文件?

        如果不想用 FTP 方法,可以选择 cPanel 来编辑 WordPress .htaccess 文件。下面是具体步骤:

        访问控制面板(cPanel)
        登录到你的主机账户,进入 控制面板(Control Panel)

        打开文件管理器(File Manager)
        在控制面板中找到并打开 “文件管理器(File Manager)” 工具。

        进入 public_html 目录
        在左侧导航菜单中,点击 public_html 文件夹,这里是网站的主目录。

        图片[8]-深入解析 WordPress .htaccess 文件:优化网站性能与安全性的终极指南

        找到 WordPress 目录
        public_html 目录下,找到并打开 WordPress 站点的文件夹(通常直接位于 public_html 内)。

        查找 .htaccess 文件
        WordPress 目录 内,你会看到 .htaccess 文件。右键点击 .htaccess 文件,选择 编辑(Edit)

        修改 .htaccess 文件
        选择 编辑(Edit) 选项后,浏览器会打开一个文本编辑器

        添加代码
        .htaccess 文件中,将需要添加的代码放在 # BEGIN WordPress 之前,然后保存修改。

          按照上面步骤,就可以成功使用 cPanel 来修改 WordPress .htaccess 文件,从而优化网站的功能和安全性。

          如何使用插件编辑 WordPress .htaccess 文件?

          另一种编辑 .htaccess 文件的方法是使用 WordPress 插件,如 Htaccess File Editor。这些插件允许你直接在 WordPress 后台 编辑 .htaccess 文件,而无需使用 FTP 或 cPanel。

          用 Htaccess File Editor 插件编辑 .htaccess 文件的方法

          • 登录 WordPress 管理后台
          • 在插件库搜索“Htaccess File Editor”插件
          图片[9]-深入解析 WordPress .htaccess 文件:优化网站性能与安全性的终极指南
          • 安装并激活插件
          • 进入“设置(Settings)” > “WP Htaccess Editor”
          • .htaccess 文件的 # BEGIN WordPress 之前插入一行新代码(可用于添加规则或配置)。

            完成以上操作后,就可以在 WordPress 后台直接编辑 .htaccess 文件,添加所需的代码片段,定义网站的规则或配置。

            WordPress .htaccess 重定向

            可以用 .htaccess 文件来管理 WordPress 网站的重定向。以下是一些常见的 .htaccess 规则,可用于设置和控制网站的重定向。

            301(永久)重定向

            301 重定向 告诉搜索引擎某个 URL 已永久移动到新地址,不仅限于 URL,也可以用于重定向文件夹、页面或整个网站。

            示例:将 oldpage.html 重定向到 newpage.html

            apacheCopyEditRedirect 301 /oldpage.html https://www.yourwebsite.com/newpage.html
            

            302(临时)重定向

            302 重定向 表示页面临时移动,不影响 SEO 排名变动。

            示例:

            apacheCopyEditRedirect 302 /oldpage.html http://www.yourwebsite.com/newpage.html
            

            强制 URL 使用 www

            下面 .htaccess 规则会强制所有访问 example.com 的用户跳转到 www.example.com

            apacheCopyEditRewriteEngine on
            RewriteCond %{HTTP_HOST} ^example.com [NC]
            RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301,NC]
            

            强制 URL 使用非 www

            下面规则会强制所有访问 www.example.com 的用户跳转到 example.com

            apacheCopyEditRewriteEngine on
            RewriteCond %{HTTP_HOST} ^www.example.com [NC]
            RewriteRule ^(.*)$ http://example.com/$1 [L,R=301]
            

            强制 HTTPS

            下面的规则会强制所有访问者使用 HTTPS,而不是 HTTP。

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

            强制 HTTP

            如果想强制所有访问者使用 HTTP 而不是 HTTPS,可以使用以下规则:

            apacheCopyEditRewriteEngine On
            RewriteCond %{HTTPS} on
            RewriteRule ^ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
            

            将根域名重定向到子目录

            下面的规则会将主域名 example.com 重定向到指定的子目录。

            apacheCopyEditRewriteCond %{HTTP_HOST} ^example.com$
            RewriteCond %{REQUEST_URI} !^/sub-directory-name/
            RewriteRule (.*) /subdir/$1
            

            重定向一个 URL

            如果有两个域名指向同一网站,可以用下面规则将一个域名重定向到另一个域名:

            apacheCopyEditRedirect 301 / http://www.mynewwebsite.com/
            

            重定向单个文章或页面

            如果想重定向某个特定的文章或页面,可以添加以下代码:

            apacheCopyEditRedirect 301 /old-url-slug https://yourdomain.com/new-url-slug
            

            示例:
            如果想将 https://www.cloudways.com/blog/core-web-vitals/ 重定向到 https://www.cloudways.com/blog/core-web-vitals-seo/,可以使用以下代码:

            apacheCopyEditRedirect 301 /core-web-vitals/ https://www.cloudways.com/blog/core-web-vitals-seo/
            

            重定向整个网站到新域名

            如果你想将整个网站重定向到新域名,可以使用以下规则:

            apacheCopyEditRewriteEngine on
            RewriteCond %{HTTP_HOST} ^olddummydomain.com [NC,OR]
            RewriteCond %{HTTP_HOST} ^www.olddummydomain.com [NC]
            RewriteRule ^(.*)$ https://newdummydomain.com/$1 [L,R=301,NC]
            

            示例:
            如果旧网站是 www.oldwebsite.com/about,应用此规则后,所有访问 www.oldwebsite.com/about 的用户都会被重定向到 www.newwebsite.com/about

            WordPress .htaccess 安全提示

            由于 WordPress 是开源平台,容易受到安全漏洞的影响。因此,用户必须采取主动措施来保护网站,例如选择可靠的服务器提供商,防止恶意流量和 DDoS 攻击

            此外,还可以通过 .htaccess 文件来保护 WordPress 目录和文件。下面是一些 .htaccess 安全规则,可帮助提高 WordPress 网站的安全性。

            保护 .htaccess 文件

            .htaccess 文件可以控制整个网站,因此需要防止未经授权的访问。可以用下面规则:

            apacheCopyEdit<files ~ "^.*\.([Hh][Tt][Aa])">
            order allow,deny
            deny from all
            satisfy all
            </files>
            

            限制 WordPress 后台(wp-admin)访问

            如果黑客获得 WordPress 后台访问权限,他们可以完全控制网站。因此,管理员可以限制 特定 IP 地址 才能访问后台。

            1. 创建一个新的 .htaccess 文件,并粘贴以下代码:
            apacheCopyEdit# 限制 wp-admin 访问权限(只允许指定 IP)
            <Limit GET POST PUT>
            order deny,allow
            deny from all
            allow from xx.xx.xx.xx
            # 允许特定 IP 地址(替换 xx.xx.xx.xx)
            </Limit>
            
            1. 将此文件上传到 /wp-admin/ 目录
            2. 如果有多个管理员,可以添加多个 IP 地址:
            apacheCopyEditallow from 34.56.78.90 98.76.54.32 19.82.73.64
            

            保护重要文件(如 wp-config.php

            wp-config.php 文件存储了 WordPress 数据库凭据敏感信息,需要禁止未经授权的访问

            apacheCopyEdit<files wp-config.php>
            order allow,deny
            deny from all
            </files>
            

            保护 wp-content 目录

            wp-content 目录包含 主题、插件、媒体文件,是黑客的主要攻击目标。可以通过 .htaccess 限制访问:

            1. wp-content 目录内创建一个新的 .htaccess 文件。
            2. 添加以下代码,仅允许访问特定文件类型(XML、CSS、JPG、PNG、GIF、JS):
            apacheCopyEditOrder deny,allow
            Deny from all
            <Files ~ ".(xml|css|jpe?g|png|gif|js)$">
            Allow from all
            </Files>
            

            限制对 WordPress 内部文件的访问

            有些 WordPress 系统文件不应该被普通用户访问。可以使用 .htaccess 限制:

            apacheCopyEdit<IfModule mod_rewrite.c>
            RewriteEngine On
            RewriteBase /
            RewriteRule ^wp-admin/includes/ - [F,L]
            RewriteRule !^wp-includes/ - [S=3]
            RewriteRule ^wp-includes/[^/]+\.php$ - [F,L]
            RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L]
            RewriteRule ^wp-includes/theme-compat/ - [F,L]
            </IfModule>
            

            禁用 PHP 执行

            某些目录(如 /wp-includes//wp-content/uploads/)默认可写,这可能被黑客利用。可以禁止 PHP 执行,防止恶意代码运行。

            1. 在你要禁用 PHP 执行的目录(例如 uploads 目录)中创建 .htaccess 文件。
            2. 添加以下代码
            apacheCopyEdit<Files *.php>
            deny from all
            </Files>
            

            限制 WordPress 插件和主题的文件访问

            为了防止黑客直接修改插件和主题的 PHP 文件,可以使用以下 .htaccess 规则:

            apacheCopyEditRewriteCond %{REQUEST_URI} !^/wp-content/plugins/file/to/exclude\.php
            RewriteCond %{REQUEST_URI} !^/wp-content/plugins/directory/to/exclude/
            RewriteRule wp-content/plugins/(.*\.php)$ - [R=404,L]
            RewriteCond %{REQUEST_URI} !^/wp-content/themes/file/to/exclude\.php
            RewriteCond %{REQUEST_URI} !^/wp-content/themes/directory/to/exclude/
            RewriteRule wp-content/themes/(.*\.php)$ - [R=404,L]
            

            防止脚本注入攻击

            脚本注入(Script Injection)是一种黑客攻击技术,它允许攻击者向网站代码中注入恶意代码,用于窃取数据或劫持网站。
            你可以使用 .htaccess 规则来防止脚本注入

            apacheCopyEditOptions +FollowSymLinks
            RewriteEngine On
            RewriteCond %{QUERY_STRING} (<|%3C).*script.*(>|%3E) [NC,OR]
            RewriteCond %{QUERY_STRING} GLOBALS(=|[|%[0-9A-Z]{0,2}) [OR]
            RewriteCond %{QUERY_STRING} _REQUEST(=|[|%[0-9A-Z]{0,2})
            RewriteRule ^(.*)$ index.php [F,L]
            

            阻止特定 IP 地址访问网站

            如果有人恶意攻击网站(如垃圾邮件或黑客攻击),可以封锁该 IP 地址,拒绝其访问。

            1. .htaccess 文件中添加以下代码
            apacheCopyEdit<Limit GET POST>
            order allow,deny
            deny from 456.78.9
            allow from all
            </Limit>
            
            1. 当被封 IP 尝试访问网站时,他们会看到403 Forbidden 错误
            图片[10]-深入解析 WordPress .htaccess 文件:优化网站性能与安全性的终极指南

            限制特定文件的访问

            如果你想阻止用户访问某个特定文件(如 your-file-name.txt),可以使用以下 .htaccess 规则:

            apacheCopyEdit<files your-file-name.txt>
            order allow,deny
            deny from all
            </files>
            

            禁用目录浏览

            默认情况下,某些服务器允许直接浏览网站目录,这可能会泄露敏感文件,增加安全风险。
            你可以通过 .htaccess 禁止目录列表,增强安全性:

            apacheCopyEdit# 禁用目录浏览
            Options -Indexes
            

            通过使用 .htaccess 文件,可以有效地提高 WordPress 网站的安全性,防止黑客攻击、恶意访问和数据泄露。建议定期备份 .htaccess 文件,并在修改前仔细测试,以确保网站正常运行。

            总结

            关于服务器配置,WordPress 的 .htaccess 文件是服务器上最关键的文件之一。它通常用于配置服务器并保护网站的各个区域。


            联系我们
            文章看不懂?联系我们为您免费解答!免费助力个人,小企站点!
            电话:020-2206-9892
            QQ咨询:1025174874
            邮件:info@361sale.com
            工作时间:周一至周五,9:30-18:30,节假日休息
            © 转载声明
            本文作者:Banner1
            THE END
            喜欢就支持一下吧
            点赞62 分享
            评论 抢沙发

            请登录后发表评论

              暂无评论内容