使用技巧

WordPress .htaccess文件:它是什么以及它可以用它做什么!

如果您想知道WordPress .htaccess文件是什么,那么您就走在正确的轨道上,因为如果您想成为WordPress开发人员,那么了解WordPress中每个文件的作用非常重要。此外,如果你将其分解并了解每个文件的作用,WordPress的文件结构很容易理解。

表中的内容

  1. 在我们开始之前
    • 备份WordPress网站
    • 创建WordPress网站的本地副本
    • 创建WordPress登台/开发网站
    • 备份当前WordPress htaccess文件
  2. 如何访问.htaccess文件
  3. 你可以用WordPress中的Htaccess文件做什么
    • 设置重定向
    • 301(永久)重定向
    • 302(临时)重定向
    • 强制URL到www
    • 强制URL到非www
    • 强制HTTP
    • 强制HTTP
    • 将域重定向到子目录
    • 将主域重定向到另一个域
    • 删除Query_String
    • 根据客户端设置语言变量
    • 将WordPress Feed重定向到Feedburner
  4. 使用htaccess规则优化WordPress速度
    • 设置浏览器缓存的过期标题
    • 启用Gzip压缩
    • 使用WordPress htaccess文件增加最大上载文件大小
  5. 提高您的WordPress网站的安全性
    • 保护.htaccess
    • 限制对WordPress管理面板的访问
    • 密码保护单个文件
    • 安全重要文件
    • 保护/ wp内容/
    • 阻止IP地址
    • 拒绝访问某些文件
    • 防止文件图像/文件热链接和带宽窃取

在这种情况下,WordPress .htaccess文件是可用于优化网站速度,提高安全性以及在WordPress网站上设置特定重定向规则的核心文件之一。

htaccess的主要目的是为Web服务器(Apache)定义如何操作您的网站(WordPress)的规则。默认的WordPress .htaccess文件控制着WordPress网站上链接(永久链接)的显示效果,但是你可以使用WordPress中的htaccess文件做更多的事情。

在我们开始之前

在没有备份的情况下编辑WordPress文件绝不是一个好主意。因此,我建议您在编辑htaccess文件之前使用以下方法之一:

备份WordPress网站 – 您应该有一个备份策略,这是备份整个WordPress网站时应该采取的最简单的安全步骤之一。

另请阅读:最佳WordPress备份插件

创建WordPress网站的本地副本 – 您可以在Mac或PC上本地安装WordPress,并将您的实时网站复制到其中进行编辑。如果一切正常,您可以将htaccess文件复制到您的实际站点(但不适用于URL重定向规则)。

创建WordPress登台/开发网站 – 托管WordPress托管提供商的一个非常常见的功能是创建一个登台和开发站点。登台站点位于临时URL上,是您的实时网站的副本。您可以在开发站点上进行更改,并在完成后将更改推送到您的实际站点。 Cloudways,Pantheon和Siteground是一些以提供此功能而闻名的托管服务提供商。

备份当前WordPress htaccess文件 – 您可以在进行编辑之前创建htaccess文件的备份。如果在编辑htaccess后出现任何问题,您只需将其替换为备份文件即可。

如何访问.htaccess文件

WordPress初学者的前两个​​问题会问“WordPress中的htaccess文件在哪里?”和“如何访问htaccess文件?”。好吧,你可以在你的WordPress网站的根目录(public_html)中找到htaccess文件并访问它,你可以使用像FileZilla这样的FTP客户端。

如果你在WordPress根目录中找不到htaccess文件,那么你的WordPress网站可能没有默认的htaccess文件,或者你的FTP客户端没有显示隐藏文件。默认情况下,htaccess是一个隐藏文件,这就是它以“。”开头的原因。

要在FileZilla中查看隐藏文件,请执行以下操作:

  • 打开Filezilla FTP并连接到您的网络服务器。
  • 导航到安装WordPress的根目录。
  • 从屏幕顶部的菜单栏中选择Server。
  • 选择“强制显示隐藏文件”。

如果在显示隐藏文件后仍然看不到任何htaccess文件,则表示您的WordPress网站没有.htaccess文件。不过不要担心,因为你的WordPress正在运行“永久链接”的默认规则。

要生成htaccess,请登录到WordPress管理员,导航到“设置”>“固定链接”,然后单击“保存更改”。

执行此操作后,刷新FTP客户端屏幕,您将看到默认代码的htaccess文件。

#BEGIN WordPress

RewriteEngine On
RewriteBase /
RewriteRule ^ index .php $ – (L)
RewriteCond%{REQUEST_FILENAME}! – f
RewriteCond%{REQUEST_FILENAME}!-d
重写规则。 /index.php(L)

#END WordPress

你可以用WordPress中的Htaccess文件做什么

既然你知道如何进入htaccess文件,现在是时候深入了解你可以在WordPress htaccess文件中定义的具体规则。我将规则分为三类:

  • 重定向规则
  • 提高WordPress的速度
  • 使WordPress安全

设置重定向

首先,让我们介绍一下您可以在WordPress网站上实施的最常见的重定向规则。

301(永久)重定向

301重定向规则告诉访问者的浏览器和搜索引擎机器人某个URL已永久移动到另一个URL。这是一个常见的重定向规则,SEO用于保留其在SERP中的页面排名:

重定向301 /oldpage.html http://www.yourwebsite.com/newpage.html

302(临时)重定向

如果您正在处理主URL并希望暂时将访问者重定向到其他页面,那么您可能需要使用302重定向规则。

重定向302 /oldpage.html http://www.yourwebsite.com/newpage.html

强制URL到www

如果您希望您的网址始终以www开头,请使用以下代码,以使您的网址在整个网站上保持一致:

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

强制URL到非www

同样,如果您更喜欢没有www的更干净的URL,以下代码将为您完成:

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

强制HTTP

如果您在WordPress网站上使用SSL证书,您可能希望所有访问者和搜索引擎抓取工具重定向到您网站的HTTPs版本。使用此代码:

RewriteEngine On
RewriteCond%{HTTP:X-Forwarded-Proto}!https
RewriteRule ^(。*)$ https://%{HTTP_HOST} / $ 1(R = 301,L)

强制HTTP

要在您的网站上强制使用非HTTP连接,请使用以下代码。

RewriteEngine On
RewriteCond%{HTTP:X-Forwarded-Proto} ^ https $
RewriteRule。* http://%{HTTP_HOST}%{REQUEST_URI}

将域重定向到子目录

您可以使用以下规则将域重定向到子目录:

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

将主域重定向到另一个域

如果您有两个或更多域名,例如abc.com,abc.net和abc.org等,并希望所有域名重定向到一个域,那么您可以在您想要的域中添加重定向规则重定向到您的主域名:

重定向301 / http://www.abc.com/

在abc.net和abc.org中添加上述规则,使其重定向到abc.com。

删除Query_String

通过在最后添加查询字符串来访问您的网站URL时,将显示相同的内容。例如,myblog.com也可以通过myblog.com/?my=query访问。如果搜索引擎抓取了这些查询字符串,则会产生重复内容。

解决此问题的简单方法是使用以下代码重定向和删除查询字符串:

RewriteCond%{THE_REQUEST} ^(A-Z)+ /.* HTTP
RewriteCond%{QUERY_STRING}!^ $
RewriteRule。* https://www.mywebsite.com% {REQUEST_URI}? (R = 301,L)

根据客户端设置语言变量

对于多语言WordPress网站,将访问者重定向到其首选语言的最佳方法是检测其浏览器语言并通过在htaccess文件中添加以下规则将其重定向到该语言:

RewriteCond%{HTTP:Accept-Language} ^。*(de | es | fr | it | ja | ru | en)。* $(NC)
RewriteRule ^(。*)$ – (env = prefer-language:%1)

注意:许多多语言WordPress插件都是自己做的。

将WordPress Feed重定向到Feedburner

WordPress默认为帖子生成RSS源,但如果您想使用Feedburner之类的第三方Feed生成器,请使用以下代码:

RewriteEngine On
RewriteBase /
RewriteCond%{REQUEST_URI} ^ / feed .gif $
RewriteRule。* – (L)

RewriteCond%{HTTP_USER_AGENT}!^。*(FeedBurner | FeedValidator)(NC)
RewriteRule ^ feed /?.*$ http://feeds.feedburner.com/apache/htaccess(L,R = 302)

RewriteCond%{REQUEST_FILENAME}! – f
RewriteCond%{REQUEST_FILENAME}!-d
重写规则。 /index.php(L)

使用htaccess规则优化WordPress速度

可以在htaccess文件中设置许多缓存规则和WordPress资产的到期时间。这意味着您实际上可以添加规则来优化您的WordPress网站的速度。

设置浏览器缓存的过期标题

今天许多浏览器暂时缓存诸如CSS,JS,HTML和一些媒体文件之类的元素,例如经常访问的网站的图标。如果WordPress网站上的这些元素不经常更改,那么您可以使用以下规则增加这些资产的到期时间:

ExpiresActive on
        ExpiresDefault“访问加1个月”
    #CSS
        ExpiresByType text / css“access plus 1 year”
    #数据交换
        ExpiresByType应用程序/ json“访问加0秒”
        ExpiresByType application / xml“access plus 0 seconds”
        ExpiresByType text / xml“access plus 0 seconds”
    #Favicon(无法重命名!)
        ExpiresByType image / x-icon“访问加1周”
    #HTML组件(HTC)
        ExpiresByType text / x-component“access plus 1 month”
    #HTML
        ExpiresByType text / html“access plus 0 seconds”
    #JavaScript
        ExpiresByType应用程序/ javascript“访问加1年”
    #清单文件
        ExpiresByType application / x-web-app-manifest + json“access plus 0 seconds”
        ExpiresByType text / cache-manifest“access plus 0 seconds”
    #Media
        ExpiresByType音频/ ogg“访问加1个月”
        ExpiresByType image / gif“access plus 1 month”
        ExpiresByType image / jpeg“access plus 1 month”
        ExpiresByType image / png“access plus 1 month”
        ExpiresByType视频/ mp4“访问加1个月”
        ExpiresByType视频/ ogg“访问加1个月”
        ExpiresByType视频/ webm“访问加1个月”
    #Web供稿
        ExpiresByType应用程序/ atom + xml“访问加1小时”
        ExpiresByType应用程序/ rss + xml“访问加1小时”
    #Web字体
        ExpiresByType应用程序/ font-woff2“访问加1个月”
        ExpiresByType应用程序/ font-woff“访问加1个月”
        ExpiresByType application / vnd.ms-fontobject“access plus 1 month”
        ExpiresByType application / x-font-ttf“access plus 1 month”
        ExpiresByType字体/ opentype“访问加1个月”
        ExpiresByType image / svg + xml“access plus 1 month”

启用Gzip压缩

GZIP是一种压缩方法,已经获得了广泛的普及,并已成为许多WordPress缓存插件的标准压缩方法。它压缩文件并创建要使用的临时文件。

如果要在WordPress网站中手动启用GZIP压缩,请将以下规则添加到htaccess文件中:

#压缩HTML,CSS,JavaScript,文本,XML和字体
  AddOutputFilterByType DEFLATE application / javascript
  AddOutputFilterByType DEFLATE application / rss + xml
  AddOutputFilterByType DEFLATE application / vnd.ms-fontobject
  AddOutputFilterByType DEFLATE application / x-font
  AddOutputFilterByType DEFLATE application / x-font-opentype
  AddOutputFilterByType DEFLATE application / x-font-otf
  AddOutputFilterByType DEFLATE application / x-font-truetype
  AddOutputFilterByType DEFLATE application / x-font-ttf
  AddOutputFilterByType DEFLATE application / x-javascript
  AddOutputFilterByType DEFLATE application / xhtml + xml
  AddOutputFilterByType DEFLATE application / xml
  AddOutputFilterByType DEFLATE font / opentype
  AddOutputFilterByType DEFLATE font / otf
  AddOutputFilterByType DEFLATE font / ttf
  AddOutputFilterByType DEFLATE image / svg + xml
  AddOutputFilterByType DEFLATE image / x-icon
  AddOutputFilterByType DEFLATE text / css
  AddOutputFilterByType DEFLATE text / html
  AddOutputFilterByType DEFLATE text / javascript
  AddOutputFilterByType DEFLATE text / plain
  AddOutputFilterByType DEFLATE text / xml
  #删除浏览器错误(仅限真正的旧版浏览器)
  BrowserMatch ^ Mozilla / 4 gzip-only-text / html
  BrowserMatch ^ Mozilla / 4 .0(678)no-gzip
  BrowserMatch bMSIE!no-gzip!gzip-only-text / html
  标题附加Vary User-Agent

使用WordPress htaccess文件增加最大上载文件大小

此规则将允许您在WordPress网站上上传更大的文件。默认情况下,许多WP站点的上传文件大小约为10MB到25MB,但如果要增加它,请使用以下代码:

php_value upload_max_filesize 64M
php_value post_max_size 64M
php_value max_execution_time 300
php_value max_input_time 300

提高您的WordPress网站的安全性

在安全性方面,您可以添加htaccess规则以限制用户对文件或URL的访问,阻止对文件的访问等等。

保护.htaccess

攻击者可以通过在您的htaccess文件中注入恶意规则来删除整个网站,因此保护它非常重要。添加以下规则以拒绝对htaccess文件的所有访问:

订单允许,否认
否认所有人
满足所有

限制对WordPress管理面板的访问

WordPress网站容易受到攻击,例如暴力攻击,试图登录您的网站管理员。如果要完全限制对仪表板的访问,请创建一个新的htaccess文件并将其放在/ wp-admin文件夹中并添加以下代码。

#通过IP限制登录和管理

命令拒绝,允许
否认所有人
允许来自xx.xx.xx.xx

注意:xx.xx.xx.xx是您要whitelabel的IP地址。只有此IP地址才能登录您的网站。

密码保护单个文件

您可以使用以下htaccess规则使用密码保护文件。

AuthName“提示”
AuthType Basic
AuthUserFile /web/mywebsite.com/.htpasswd
需要有效用户

安全重要文件

您应该保护其他关键文件,例如php.ini,wp-config.php,为此,请添加以下规则来限制访问:

命令拒绝,允许
拒绝所有人

保护/ wp内容/

文件夹/ wp-content包含主题文件,图像和缓存文件。攻击者将尝试访问此文件夹中的文件并注入恶意代码。使用此代码将其保留:

命令拒绝,允许
拒绝所有人

允许所有人

阻止IP地址

如果您知道攻击者的IP地址(您可以从您的网站日志中获取IP),则可以使用以下htaccess规则阻止它:

订单允许,否认
否认自123.456.78.9
允许所有人

拒绝访问某些文件

就像阻止特定的IP地址一样,您可以使用以下代码阻止对特定文件的访问:

订单允许,否认
否认所有人

防止文件图像/文件热链接和带宽窃取

图像和文件可能被盗,可以生成针对图像和文件URL的多个请求。此类攻击会增加您的带宽使用量,并可能会降低您的网站速度。要防止热链接,请使用以下htaccess规则:

RewriteEngine On
RewriteBase /
RewriteCond%{HTTP_REFERER}!^ $
RewriteCond%{HTTP_REFERER}!^ http://(www 。)?mywebsite .com /.*$(NC)
RewriteRule 。(gif | jpg | swf | flv | png)$ / feed /(R = 302,L)

结论

WordPress htaccess文件无疑是WordPress目录中最重要的文件之一。以正确的方式使用它将提高您的网站的安全级别,并帮助它加快速度。除了安全性和速度之外,htaccess文件还有强大的规则来更改WordPress网站的默认行为。这就是为什么我建议每个WordPress开发人员更深入地了解可以在此文件中使用的每个规则。

如果您有任何疑问或想要针对任何具体内容请求规则,请使用下面的评论部分,我会尽快回复您!

帖子WordPress .htaccess文件:它是什么以及你可以用它做什么!首先出现在WPblog上。