10 个有用的 htaccess 代码片段和技巧
已发表: 2020-09-10.htaccess
是每个网络管理员都应该知道和理解的文件。 在其基本级别,它控制对您站点目录的访问。 但是,您可以做的远不止这些,因为这篇文章中的片段将向您展示。
如果您想了解.htaccess
的基础知识,您应该查看我们的 .htaccess 简介文章,该文章很好地解释了启动和运行所需的一切。
您可能还喜欢这些有用的 WordPress SQL 查询片段或使 WordPress 对您的客户友好的这些片段。
1. 控制对文件和目录的访问
密码保护是一回事,但有时您可能需要完全阻止用户选择访问特定文件或目录。 这通常发生在系统文件夹中,例如应用程序需要访问的includes
文件夹,但没有用户需要该权限。
为此,请将此代码粘贴到.htaccess
文件中并将其放入目录中:
但是,这将阻止包括您在内的所有人的访问。 要授予自己访问权限,您需要指定您的 IP 地址。 这是代码:
xxx.xxx.xxx.xxx
是您的 IP。 例如,如果您将最后三位数字替换为0/12
,这将指定同一网络内的 IP 范围,从而省去了单独列出所有允许的 IP 的麻烦。
如果要阻止对特定文件的访问,包括.htaccess
本身,请改用以下代码段:
同样,如果您想允许给定的 IP,请使用allow from
列出它们。
如果要阻止对特定文件类型的访问,请改用:
2.禁用目录浏览
要防止目录浏览,请添加以下内容:
但是,如果出于某种原因要启用目录浏览,请将其更改为以下内容:
3. 通过压缩文件加快加载时间
您可以压缩任何类型的文件,而不仅仅是图像。 例如,要压缩HTML文件,请使用以下命令:
要压缩TEXT文件,请使用:
您还可以压缩JavaScript ,或使用一个命令将压缩添加到多种文件类型:
或者,如果你想用 GZIP 压缩所有的 JavaScript、HTML 和 CSS 文件,你可以使用这个:
4.保护您的网站免受盗链
如果您不希望您的图像进行热链接,请将其添加到您的.htaccess
文件中:
只需将 yourdomain.com 替换为您自己的,就可以了。
5. 阻止来自特定域的访问者
如果您有来自您不欢迎的特定域的用户,您可以禁止他们访问您的站点。 例如,如果您的网站被列在您不希望流量来自的地方(即成人网站、黑帽网站等),您可以为它们提供 403 禁止页面。 你需要启用mod_rewrite
,但你应该没问题,因为它通常是打开的。 添加此代码段:
您需要将bannedurl1.com
和bannedurl2.com
等替换为您想要加入黑名单的域名。 您可能想要使用[NC]
标志,因为它指定您输入的域名不区分大小写。 [F]
标志指定要采取的操作——在这种情况下显示 403 Forbidden 错误。 如果要禁止多个站点,请对除最后一个域之外的每个域使用[NC,OR]
标志,如果要禁止单个域,请仅使用[NC]
标志。
6. 阻止来自特定用户代理的请求
如果您的日志文件显示特定的用户代理(机器人或蜘蛛),您可以在.htaccess
中添加几行并拒绝他们访问您的站点:
将badbot1
、 badbot1
等替换为日志文件中的机器人名称。 这应该使此类程序远离您的站点。
7.缓存文件
加快网站加载时间的另一种方法是通过文件缓存。 为了缓存文件,您需要添加以下内容:
您可以在此示例中列出的文件序列中添加更多文件类型(或删除其中一些) - 做适合您的事情。 您还可以使用max-age
指定文件将在缓存中存在的时间量(以秒为单位)。
8.禁用特定文件类型的缓存
如果您不想缓存特定的文件类型,则不将它们包含在缓存序列中会更容易。 但是,有时即使您没有在其中明确列出文件,文件也可能会被缓存,在这种情况下,您可能只想为它们禁用缓存。 大多数情况下,您会希望禁用对动态文件(例如脚本)的缓存。 这是如何做到的:
只需通过管道传输您想要禁用缓存的文件,就是这样。
9.绕过下载对话
默认情况下,当您尝试从 Web 服务器下载文件时,会出现一个对话框,询问您是要保存文件还是打开它。 对于大型媒体文件或 PDF,这种对话尤其令人恼火。 如果您上传到服务器的文件是供下载的,您可以为用户省去麻烦,直接进行下载。 这是您需要在.htaccess
中设置的内容:
10. 重命名.htaccess
文件
如果出于某种原因,主要是与安全相关,您想要重命名您的.htaccess
文件,这很容易做到。 理论上,重命名.htaccess
文件不会导致服务器上运行的应用程序出现问题,但如果您在重命名文件后偶然发现此类问题,只需将其重命名回其原始名称即可。
您还需要更新文件本身或提到.htaccess
的任何地方的任何条目; 否则你会得到很多错误。
11. 更改默认索引页面
如果您希望您的索引页面不同于默认的index.html
、 index.php
、 index.htm
等,这很容易做到。 这是您需要添加到.htaccess
的内容:
将mypage.html
替换为您要用作索引的页面的实际 URL,您就完成了。
12. 重定向到安全的 https 连接
如果您使用的是 HTTPS,并且希望将用户重定向到您网站的安全页面,请使用以下命令:
13. PHP 中限制文件上传限制、Post 数据最大大小、最大脚本执行时间等。
.htaccess
允许您设置一些直接影响 PHP 应用程序的值。 例如,如果您想在 PHP 中施加上传限制,以便您不会因为大文件而耗尽托管空间,请使用以下命令:
当然,您可以将值设置为您认为合适的任何值——本示例中的 15M (MB) 并不是一成不变的。 您还可以限制在 PHP 中上传的最大帖子大小。 为此,请添加以下内容:
同样,您可以将10M
更改为适合您的任何值。 如果您不希望脚本永远执行,您可以借助以下方法限制它们的执行时间:
240
是脚本终止前的秒数,正如您猜测的那样,它可以是任何值。 最后,如果您想限制脚本解析输入数据的时间,请使用以下命令:
并以秒为单位设置适合您的任何值。
14. 伪装文件类型
有时,您不希望用户知道您网站上文件的文件类型。 隐藏此信息的一种方法是伪装它们。 例如,您可以使所有文件看起来像是 HTML 或 PHP 文件:
使用.htaccess
可以完成更多工作。 例如,您可以设置网站页面的自动翻译,或设置服务器时区,或从 URL 中删除 www,或使用精美的目录列表等。无论如何,在开始使用.htaccess
进行实验之前,请始终备份原始文件.htaccess
,所以如果事情没有按计划进行,你有一个工作副本可以恢复。