.htaccess文件是Apache目录级配置文本,需主配置中AllowOverride设为All且mod_rewrite启用,可实现伪静态、HTTPS强制跳转、防盗链、自定义错误页及访问控制等功能。

.htaccess 文件是 Apache 服务器中用于目录级配置的文本文件,它不依赖主配置(httpd.conf),允许你在无管理员权限时灵活调整当前目录及所有子目录的行为。但前提是服务器已启用该功能——即主配置中对应目录的 AllowOverride 指令被设为 All 或至少包含你打算使用的指令类别(如 FileInfo、AuthConfig、Rewrite 等)。
启用重写与 URL 控制
这是最常用的功能,依赖 mod_rewrite 模块已启用。开启后可实现 SEO 友好链接、强制 HTTPS、统一域名等:
- 启用引擎:
RewriteEngine On - 强制 HTTPS:
RewriteCond %{HTTPS} off+RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] - 统一 www:
RewriteCond %{HTTP_HOST} ^example\.com$ [NC]+RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L] - 伪静态路由示例:
RewriteRule ^article/(\d+)$ /post.php?id=$1 [L]
增强网站安全防护
无需额外插件,就能阻挡常见威胁:
- 禁止访问敏感文件:
<Files ".htaccess"> Require all denied </Files> - 屏蔽恶意 User-Agent 或空 Referer 盗链:
RewriteCond %{HTTP_REFERER} !^https?://(www\.)?yourdomain\.com/ [NC]+RewriteRule \.(jpg|jpeg|png|gif)$ - [F] - 禁用目录浏览:
Options -Indexes - 阻止 IP 访问:
Deny from 192.168.1.100(需配合Order Deny,Allow使用)
自定义错误响应与默认行为
提升用户体验和站点专业性:
- 指定错误页面:
ErrorDocument 404 /404.html(路径为相对于网站根目录) - 设置默认首页:
DirectoryIndex index.php index.html - 声明字符编码:
AddDefaultCharset UTF-8 - 添加响应头(如防 XSS):
<IfModule mod_headers.c> Header set X-Content-Type-Options "nosniff" </IfModule>
限制访问与密码保护
适用于后台、测试目录等需要简单认证的场景:
- 启用基础认证:
AuthType Basic+AuthName "Restricted Area" - 指定密码文件路径:
AuthUserFile /var/www/.htpasswd(需用 htpasswd 工具生成) - 控制访问权限:
Require valid-user或Require user alice bob - 仅允特定 IP 登录:
Require ip 203.0.113.5
注意:每次修改后务必保存为 UTF-8 无 BOM 格式,并通过访问测试确认效果;语法错误会导致整个目录 500 错误。生产环境建议优先使用主配置文件,仅在共享主机等受限环境下使用 .htaccess。


















