
目录
.htaccess是什么?
.htaccess(超文本访问,Hypertext Access)是Apache HTTP服务器的目录级配置文件。它允许您在不修改主配置文件 httpd.conf(需要root权限)的情况下控制网站行为。
在AsiaGB DirectAdmin主机上,Apache默认配置了 AllowOverride All,意味着.htaccess对每个网站立即生效——无需提交工单。
💡 文件名以点开头,在Linux系统中是"隐藏文件"。在DirectAdmin文件管理器中启用显示隐藏文件才能看到它。
为什么要使用.htaccess?
.htaccess可以处理PHP或HTML无法完成的任务:
| 任务 | .htaccess指令 | 使用原因 |
|---|---|---|
| 将旧URL重定向到新URL | RewriteRule / Redirect | 服务器级别,在PHP执行前处理 |
| 强制HTTPS | RewriteRule HTTPS | 安全,无需修改代码 |
| 目录密码保护 | AuthType Basic | 比PHP会话认证更快 |
| 自定义404/500错误页面 | ErrorDocument | 统一应用于所有URL |
| 封锁IP或User-Agent | Deny from | 在PHP处理请求前拦截 |
| 设置Cache-Control头 | Header set | 精确控制浏览器缓存 |
在DirectAdmin创建和编辑.htaccess
有两种主要方式创建或编辑.htaccess:
方法一——通过DirectAdmin文件管理器
- 登录DirectAdmin → 选择文件管理器
- 导航到
public_html/ - 点击"新建文件" → 命名为
.htaccess(带前置点) - 点击编辑,粘贴指令 → 保存
📂 如果在文件管理器中看不到.htaccess,点击右上角的"显示隐藏文件"。
方法二——通过FTP
- 打开FTP客户端(如FileZilla)→ 使用DirectAdmin提供的FTP信息连接
- 导航到
public_html/ - 在本地创建
.htaccess文件后上传到服务器
⚠️ 每次编辑前务必备份!.htaccess语法错误会立即导致500错误。请先下载一份备份。
URL重定向
URL重定向是.htaccess最常见的用途——尤其是域名迁移后的旧URL重定向、强制HTTPS以及www/非www规范化。
强制HTTPS(HTTP→HTTPS重定向)
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
单页面301永久重定向
Redirect 301 /old-page.html https://yourdomain.com/new-page.html
www重定向到非www
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [R=301,L]
自定义404错误页面
ErrorDocument 404 /404.html
🔎 301与302的区别:URL永久移动时使用301——Google会将PageRank传递给新URL。仅临时跳转时使用302。
目录密码保护
要用用户名和密码限制对 /admin 或 /staging 等目录的访问:
第一步——创建.htpasswd文件
在public_html之外创建.htpasswd文件,例如 /home/username/.htpasswd,使用在线htpasswd生成工具或DirectAdmin终端:
htpasswd -c /home/username/.htpasswd myusername
第二步——在需要保护的目录中添加.htaccess
AuthType Basic AuthName "Protected Area" AuthUserFile /home/username/.htpasswd Require valid-user
自定义错误页面
使用品牌化的友好错误页面替代Apache默认的错误页面:
ErrorDocument 404 /404.html ErrorDocument 403 /403.html ErrorDocument 500 /500.html
在网站根目录(public_html/404.html)创建404.html,包含导航链接和搜索表单以降低跳出率。
IP封锁与访问控制
如果网站遭受来自特定IP的垃圾邮件或攻击,可通过.htaccess封锁:
封锁特定IP
Order allow,deny Allow from all Deny from 123.456.789.0 Deny from 192.168.1.0/24
通过User-Agent封锁恶意爬虫
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} (BadBot|EvilScraper|SpamBot) [NC]
RewriteRule .* - [F,L]
禁止直接访问敏感文件
<FilesMatch "\.(env|log|sql|bak)$"> Order allow,deny Deny from all </FilesMatch>
🔒 务必阻止直接访问 .env、.log 和 .sql 文件——这些文件可能包含数据库密码等敏感信息。
.htaccess与SEO
.htaccess在四个关键领域对SEO有直接影响:
| 设置 | SEO影响 |
|---|---|
| 301重定向 | 将链接权重传递给新URL,防止内容重复 |
| HTTPS重定向 | Google优先排名HTTPS网站;提升信任度 |
| 自定义404页面 | 降低跳出率;让Google看到正确的404响应码 |
| 缓存头 | 加快加载速度 = 更好的Core Web Vitals = 更高排名 |
示例:规范化URL(www→非www + HTTPS)
RewriteEngine On
# www重定向到非www
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [R=301,L]
# HTTP重定向到HTTPS
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
缓存与压缩设置
快速加载的网站排名更好、转化率更高。通过.htaccess配置浏览器缓存和Gzip压缩效果显著:
使用mod_expires设置浏览器缓存
<IfModule mod_expires.c> ExpiresActive On ExpiresByType image/jpg "access plus 1 year" ExpiresByType image/jpeg "access plus 1 year" ExpiresByType image/webp "access plus 1 year" ExpiresByType image/png "access plus 1 year" ExpiresByType text/css "access plus 1 month" ExpiresByType application/javascript "access plus 1 month" ExpiresByType text/html "access plus 1 hour" </IfModule>
使用mod_deflate启用Gzip压缩
<IfModule mod_deflate.c> AddOutputFilterByType DEFLATE text/html text/plain text/css AddOutputFilterByType DEFLATE application/javascript application/json AddOutputFilterByType DEFLATE image/svg+xml </IfModule>
⚡ 启用Gzip压缩可将HTML/CSS/JS文件大小减少60-70%,显著提升页面加载速度,尤其在慢速网络下效果明显。
常见问题
public_html/(网站根目录)。在DirectAdmin文件管理器中启用"显示隐藏文件"即可看到。总结——立即在DirectAdmin主机上使用.htaccess
.htaccess是每个托管账户都应该掌握的强大工具。无论是域名迁移后重定向旧URL、强制HTTPS、密码保护敏感目录,还是通过缓存头提升网站速度——都可以在服务器层面一站式解决。
在AsiaGB DirectAdmin主机上,mod_rewrite和mod_expires默认已启用,所有.htaccess指令立即生效,无需任何额外配置。
如果您正在寻找完整支持.htaccess且DirectAdmin面板易于使用的主机服务,AsiaGB套餐起价500泰铢/月,配备SSD存储,99%正常运行时间,每月两次自动备份。