📜  htaccs (1)

📅  最后修改于: 2023-12-03 14:41:45.169000             🧑  作者: Mango

关于 .htaccess

.htaccess 文件是 Apache 服务器中的一个配置文件,用于配置一些与网站相关的服务器设置。它仅对包含它的目录及其子目录有效,并可以被用来禁止访问、使网站更安全、增加缓存、重定向网站流量、设置错误页面、以及更多其他设置。下面将对.htaccess 的常用功能进行介绍。

禁止访问

禁止目录列表在 Web 服务器上可能是有用的,这样 web 服务器就不会显示当前目录下的所有文件(包括子目录下的文件)。我们可以在.htaccess文件中添加以下代码:

# 禁止目录列表
Options -Indexes
安全性

通过.htaccess文件可以提高网站的安全性。以下是一些安全性设置:

防止跨站点脚本攻击 (XSS)
# 禁止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攻击
# 防止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 重定向
# 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 文件的一些功能会导致服务器负载与安全性问题,请谨慎使用。