📅  最后修改于: 2023-12-03 14:41:45.169000             🧑  作者: Mango
.htaccess
文件是 Apache 服务器中的一个配置文件,用于配置一些与网站相关的服务器设置。它仅对包含它的目录及其子目录有效,并可以被用来禁止访问、使网站更安全、增加缓存、重定向网站流量、设置错误页面、以及更多其他设置。下面将对.htaccess
的常用功能进行介绍。
禁止目录列表在 Web 服务器上可能是有用的,这样 web 服务器就不会显示当前目录下的所有文件(包括子目录下的文件)。我们可以在.htaccess
文件中添加以下代码:
# 禁止目录列表
Options -Indexes
通过.htaccess
文件可以提高网站的安全性。以下是一些安全性设置:
# 禁止JavaScript,VBScript,CSS expressions以及具有data: URL 的iframe
<IfModule mod_headers.c>
Header set X-XSS-Protection "1; mode=block"
Header unset ETag
Header set Cache-Control "max-age=86400, public, must-revalidate"
Header set Strict-Transport-Security "max-age=300; includeSubDomains; preload"
FileETag None
</IfModule>
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_METHOD} ^(?:POST|OPTIONS|PUT|PATCH|DELETE)
RewriteRule ^ - [R=403,L]
</IfModule>
# 防止CC攻击
# 检测同一IP访问同一资源超过10次时,强制返回为403
<IfModule mod_evasive24.c>
DDoSEvasiveLogDir "logs"
DOSHashTableSize 3097
DOSPageCount 5
DOSSiteCount 100
DOSPageInterval 2
DOSSiteInterval 2
DOSBlockingPeriod 600
DOSEmailNotify you@yourdomain.com
</IfModule>
.htaccess
文件可以帮助您在不更改 URL 的情况下将流量重定向到不同的页面。
# 301 重定向 www 到 非 www
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
# 404 页面自定义
ErrorDocument 404 /404.html
客户端浏览器缓存是降低服务器负载的重要方式。通过使用户端缓存当前页面、图像和静态文件,您可以改善页面加载速度。以下是如何利用.htaccess
文件来处理缓存的示例:
# 缓存控制
<IfModule mod_headers.c>
# 告诉浏览器缓存何时过期
ExpiresActive On
ExpiresDefault "access plus 1 month"
ExpiresByType image/gif "access plus 1 month"
ExpiresByType image/png "access plus 1 month"
ExpiresByType image/jpeg "access plus 1 month"
ExpiresByType text/css "access plus 1 month"
ExpiresByType application/javascript "access plus 1 year"
ExpiresByType text/javascript "access plus 1 year"
</IfModule>
.htaccess
文件有许多功能,本文仅涵盖了一些主要的功能。 .htaccess
文件是一个非常有用但也是一个强大的工具,如果您不知道如何使用它,请仔细阅读 Apache 官方文档、查找相关技术文献,并且建议在进行更改前备份你的.htaccess
文件。最后请注意,.htaccess
文件的一些功能会导致服务器负载与安全性问题,请谨慎使用。