最新公告
  • 欢迎您光临源库坊,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入我们
  • 15个有用的WordPress .htaccess 代码片段

    如果您想提高安全性并减少 WordPress网站上的漏洞,那么拥有一个配置良好的.htaccess文件至关重要。通常,创建自定义.htaccess文件的主要目的是防止您的网站被黑客入侵,但它也是处理重定向和管理缓存相关任务的绝佳方式。

    推荐阅读《网站管理员和Web开发人员.htaccess入门指南

    .htaccess是Apache Web服务器上使用的配置文件。大多数WordPress站点都在Apache服务器上运行,尽管其中一小部分由Nginx提供支持。在本文中,您可以找到.htaccess代码片段的集合,其中大部分可用于保护您的网站,而其余代码片段实现其他有用的功能。

    不要忘记在编辑之前备份.htaccess文件,以便在出现问题时始终可以返回到以前的版本。

    如果你是一个不喜欢触摸配置文件的人,我推荐你使用BulletProof Security插件,它是市场上最可靠(也可能是最老的)免费.htaccess安全插件

    创建 WP 默认的 .htaccess

    .htaccess基于每个目录工作,这意味着每个目录都可以拥有自己的.htaccess文件。很可能你的WordPress网站还没有.htaccess文件。如果在根目录中找不到.htaccess文件,请创建一个空文本文件并将其命名为.htaccess

    下面,您可以找到WordPress使用的默认.htaccess。无论何时需要此代码,您都可以在WordPress Codex中快速查找。请注意,WP Multisite(多站点)有一个不同的.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

    # 开头的行是注释。不要编辑任何# BEGIN WordPress# END WordPress之间的代码。在这些默认规则下添加自定义.htaccess 规则

    有用的.htaccess代码

    你可以在本文中找到的所有代码段,然后添加到根目录的核心.htaccess文件

    1.拒绝访问所有.htaccess文件

    下面的代码拒绝访问你WordPress中的所有.htaccess文件。这样,您可以阻止别人查看你的Web服务器配置

    # Denies access to all .htaccess files
    <Files ~ "^.*\.([Hh][Tt][Aa])">
    Order Allow,Deny
    Deny from all
    Satisfy all
    </Files>

    2.保护你的WP配置文件

    wp-config.php文件包含所有WP配置,包括数据库登录名和密码。您可以拒绝所有人或允许管理员访问它

    如果你选择后者,去除# Allow from xx.xx.xx.xxx 前面的 # ,并插入管理员的IP地址来代替xx.xx.xx.xxx

    # Protects wp-config
    <Files wp-config.php>
    Order Allow,Deny
    # Allow from xx.xx.xx.xxx
    # Allow from yy.yy.yy.yyy
    Deny from all
    </Files>

    3.防止XML-RPC DDoS攻击

    WordPress 默认支持XML-RPC,这是一个使远程发布接口。然而,虽然它是一个很棒的功能,但它也是WP最大的安全漏洞之一,因为黑客可能利用它来进行DDoS攻击

    如果您不想使用此功能,最好禁用它。和以前一样,你可以通过去除# Allow from xx.xx.xx.xxx前面的 # 和添加管理员(或多个)的IP地址。

    # Protects XML-RPC, prevents DDoS attack
    <FilesMatch "^(xmlrpc\.php)">
    Order Deny,Allow
    # Allow from xx.xx.xx.xxx
    # Allow from yy.yy.yy.yyy
    Deny from all
    </FilesMatch>

    4.保护网站后台

    通过仅向管理员提供访问权限来保护网站后台也是一个好主意。在这里,不要忘记添加至少一个“允许”例外IP,否则您根本无法访问网站后台。

    注:如果你的宽带没有固定的IP,请务必不要设置,否则你可能无法访问网站后台!

    # Protects admin area by IP
    AuthUserFile /dev/null
    AuthGroupFile /dev/null
    AuthName "WordPress Admin Access Control"
    AuthType Basic
    <LIMIT GET>
    Order Deny,Allow
    Deny from all
    Allow from xx.xx.xx.xxx
    Allow from yy.yy.yy.yyy
    </LIMIT>

    5.阻止目录列表

    大多数WordPress网站不会禁用目录列表,这意味着任何人都可以浏览其文件夹和文件,包括媒体上传和插件文件。不用说,这是一个巨大的安全漏洞。

    下面,你可以看到典型的WordPress目录列表的外观

    幸运的是,您只需要
    一行代码就可以阻止此功能。此代码段将向想要访问您的目录的任何人
    返回403错误消息

    # Prevents directory listing
    Options -Indexes

    6.防止用户名枚举

    如果启用了WP永久链接,则使用作者存档枚举用户名非常容易。然后,显示的用户名(包括管理员的用户名)可用于暴力攻击

    将下面的代码插入.htaccess文件以防止用户名枚举

    # Prevents username  enumeration
    RewriteCond %{QUERY_STRING} author=d
    RewriteRule ^ /? [L,R=301]

    7.阻止垃圾邮件发送者和机器人

    有时你可能希望限制某些IP地址的访问。此代码段提供了一种简单的方法来阻止你已经知道的垃圾邮件发送者和机器人。

    # Blocks spammers and bots
    <Limit GET POST>
    Order Allow,Deny
    Deny from xx.xx.xx.xxx
    Deny from yy.yy.yy.yyy
    </Limit>
    Allow from all

    8.防止图片盗链

    虽然不是安全威胁,但图片盗链仍然是一件烦人的事情。人们不仅在未经您许可的情况下使用你的图片,可能会导致你的带宽费用支出。使用这几行代码,您可以保护你的网站被盗链图片。

    # Prevents image hotlinking
    RewriteEngine on
    RewriteCond %{HTTP_REFERER} !^$
    RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourwebsite.com [NC]
    RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourwebsite2.com [NC]
    RewriteRule \.(jpe?g?|png|gif|ico|pdf|flv|swf|gz)$ - [NC,F,L]

    9.限制对插件和主题PHP文件的直接访问

    如果有人直接调用您的插件和主题文件,无论是意外发生还是恶意攻击者,都会很危险。此代码段来自Acunetix网站安全公司 ; 您可以在他们的博文中阅读有关此漏洞的更多信息。

    # Restricts access to PHP files from plugin and theme directories
    RewriteCond %{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]

    10.设置永久重定向

    你可以使用.htaccess 轻松处理永久重定向。首先,你必须添加旧URL,然后按照指向要将用户重定向到的页面的新URL

    # Permanent redirects
    Redirect 301 /oldurl1/ http://yoursite.com/newurl1
    Redirect 301 /oldurl2/ http://yoursite.com/newurl2

    11.将访问者发送到维护页面

    如果你的网站在维护,我们希望告知访客这个事情,可以使用规则去实现。你需要一个单独的维护页面maintenance.html在示例中)才能使此.htaccess规则生效。此代码将你的WordPress站点置于维护模式

    # Redirects to maintenance page
    <IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond %{REMOTE_ADDR} !^123\.456\.789\.000
    RewriteCond %{REQUEST_URI} !/maintenance.html$ [NC]
    RewriteCond %{REQUEST_URI} !\.(jpe?g?|png|gif) [NC]
    RewriteRule .* /maintenance.html [R=503,L]
    </IfModule>

    12.限制对 wp-includes 目录的所有访问

    /wp-includes/文件夹包含必需的核心WordPress文件。没有内容、插件、主题或用户可能想要访问的任何其他内容。因此,为了加强安全性,最好限制对它的所有访问

    # Blocks all wp-includes folders and files
    <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>

    13.阻止跨站点脚本(XSS)

    以下代码片段来自WP Mix,它可以保护你的站点免受一些常见的XSS攻击,即脚本注入和尝试修改全局和请求变量。

    # Blocks some XSS attacks
    <IfModule mod_rewrite.c>
    RewriteCond %{QUERY_STRING} (\|%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]
    </IfModule>

    14.启用浏览器缓存

    正如我之前提到的,.htaccess不仅有利于安全性和重定向,还可以帮助您管理缓存。下面的代码片段来自Elegant Themes,它通过允许访问者保存某些类型的文件使浏览器缓存成为可能,因此下次访问时他们不必再次下载它们。

    # Enables browser caching
    <IfModule mod_expires.c>
    ExpiresActive On
    ExpiresByType image/jpg "access 1 year"
    ExpiresByType image/jpeg "access 1 year"
    ExpiresByType image/gif "access 1 year"
    ExpiresByType image/png "access 1 year"
    ExpiresByType text/css "access 1 month"
    ExpiresByType application/pdf "access 1 month"
    ExpiresByType text/x-javascript "access 1 month"
    ExpiresByType application/x-shockwave-flash "access 1 month"
    ExpiresByType image/x-icon "access 1 year"
    ExpiresDefault "access 2 days"
    </IfModule>

    15.设置自定义错误页面

    你可以使用.htaccess在WordPress网站上设置自定义错误页面。对于这种方法,您还需要创建自定义错误页custom-403.htmlcustom-404.html在本例中),并上传到你的网站根目录。

    您可以为所需的任何HTTP错误状态代码(4XX和5XX状态代码)设置自定义错误页面。

    # Sets up custom error pages
    ErrorDocument 403 /custom-403.html
    ErrorDocument 404 /custom-404.html

    好了,今天就分享这些 .htaccess 代码片段,如果你有其他不错的片段,欢迎和我们分享!

    1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
    2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
    3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
    4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
    5. 如有链接无法下载、失效或广告,请联系管理员处理!
    6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
    7. 如遇到加密压缩包,默认解压密码为"www.yuankufang.com",如遇到无法解压的请联系管理员!
    源库坊 » 15个有用的WordPress .htaccess 代码片段

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    源库坊
    一个高级程序员模板开发平台
    • 353会员总数(位)
    • 1198资源总数(个)
    • 0本周发布(个)
    • 0 今日发布(个)
    • 1493稳定运行(天)

    提供最优质的资源集合

    赞助本站svip 了解详情