Debian Apache 配置 SEO 的关键步骤
一 基础与环境准备
- 安装与启用核心模块:启用 mod_rewrite(URL 重写)、mod_ssl(HTTPS)、mod_deflate(Gzip 压缩)、mod_expires(缓存控制)。示例:sudo a2enmod rewrite ssl deflate expires;如计划使用页面缓存,可再启用 mod_cache 与 mod_mem_cache。完成后执行 sudo systemctl reload apache2。
- 创建虚拟主机并开启 .htaccess 覆盖:在 /etc/apache2/sites-available/yourdomain.conf 中配置 ServerName/DocumentRoot,并在对应 中将 AllowOverride All,以便使用 .htaccess 做 SEO 与重写规则。启用站点:sudo a2ensite yourdomain.conf && sudo systemctl reload apache2。
- 文件与目录权限:常规建议为文件 644、目录 755,确保 Apache 可读可执行且安全。
- 启用 HTTP/2(可选但推荐):现代浏览器与搜索引擎更偏好 HTTP/2,在启用 mod_ssl 的基础上,确保使用支持 HTTP/2 的 MPM(如 event/worker)并在需要时调整配置以发挥多路复用优势。
二 URL 结构与重定向
- 规范与美化 URL:使用 mod_rewrite 将动态参数转为语义化路径,例如将 /product/123 重写为 product.php?id=123,提升可读性与可索引性。
- 统一站点入口:将 www 与非 www 统一到单一规范域名(如 301 重定向到 https://example.com),避免重复内容与权重分散。
- 常用重写示例(.htaccess 或 内):
- 规范到 HTTPS + www(示例为重定向到 non-www):
RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www. [NC]
RewriteRule ^ https://example.com%{REQUEST_URI} [L,R=301]
- 前端路由回退(SPA):
RewriteEngine On
RewriteBase /
RewriteRule ^index.html$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.html [L]
- 旧页 301 到新页:
RewriteRule ^old-page.html$ /new-page.html [R=301,L]
- 建议做法:在虚拟主机中直接配置 301 重定向(更可靠),并在 .htaccess 中保留用于应用层路由的规则。
三 性能与传输优化
- 启用 Gzip 压缩(mod_deflate):对 HTML/CSS/JS/JSON/XML/字体/SVG 等文本资源启用压缩,显著降低传输体积、加快首屏。
- 设置缓存策略(mod_expires):为静态资源设置长期 Cache-Control/Expires,为 HTML 设置较短时间,平衡新鲜度与命中率。
- 连接与 KeepAlive 调优:适度降低 KeepAliveTimeout、限制 MaxKeepAliveRequests,减少长连接占用,提高并发处理能力。
- 启用 HTTP/2:在 HTTPS 前提下启用 HTTP/2,利用多路复用提升并行加载性能。
- 可选页面级缓存:启用 mod_cache/mod_mem_cache 做页面级缓存,适合变化不频繁的页面,进一步降低 TTFB。
四 安全与可抓取性
- 全站 HTTPS:使用 Let’s Encrypt 获取免费证书并自动配置 Apache:sudo apt install certbot python3-certbot-apache && sudo certbot --apache -d example.com。
- 隐藏版本信息:在 Security 配置中关闭 ServerTokens Full 与 ServerSignature On,减少信息泄露面。
- 防火墙放行:仅开放 80/443,如 UFW:sudo ufw allow 80,443/tcp && sudo ufw enable。
- robots.txt 与 Sitemap:在站点根目录放置 robots.txt(如 Disallow: /admin/),并提供 sitemap.xml;在 robots.txt 中加入 Sitemap 声明,便于搜索引擎发现与抓取。
- 规范化与结构化数据:在页面 使用 解决重复内容;嵌入 Schema.org 结构化数据,帮助搜索引擎理解内容语义。
五 验证与持续维护
- 配置语法与生效:每次修改后执行 sudo apache2ctl configtest && sudo systemctl reload apache2,确保无语法错误再加载。
- 压缩与缓存验证:使用浏览器开发者工具或 GTmetrix/WebPageTest 检查响应头是否包含 Content-Encoding: gzip,以及 Cache-Control/Expires 是否正确。
- 重定向与 HTTPS 验证:用 curl -I 检查 301/302 与 Location 头,确认 HTTPS 强制跳转与规范域名生效。
- 日志与监控:定期分析 access.log/error.log,配合系统监控(如 top/htop/vmstat/iostat/netstat)定位性能瓶颈与抓取异常。
- 持续更新与备份:定期 apt update/upgrade 与备份站点与证书,保持安全与稳定。