Apache2 配置要点清单
从HTTPS、URL 规范化、性能优化、安全与可抓取性四个维度入手,能显著提升搜索引擎可见性与排名。下面给出在 Debian/Ubuntu 与 CentOS/RHEL 上可直接落地的配置要点与示例。
一 基础配置与 HTTPS
# 启用模块
sudo a2enmod ssl
sudo a2enmod http2
# 虚拟主机示例片段
<VirtualHost *:80>
ServerName example.com
Redirect permanent / https://example.com/
</VirtualHost>
<VirtualHost *:443>
ServerName example.com
DocumentRoot /var/www/html
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
# 启用 HTTP/2
Protocols h2 http/1.1
# 安全与合规
Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"
Header always set X-Content-Type-Options nosniff
Header always set X-Frame-Options SAMEORIGIN
Header always set X-XSS-Protection "1; mode=block"
# 可选:隐藏版本
ServerTokens Prod
ServerSignature Off
</VirtualHost>
Listen 443 http2,其余 SSL 配置类似。证书可用 Let’s Encrypt 自动化获取与续期。二 URL 结构与规范化
RewriteEngine On
# 规范 www
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [R=301,L]
# 统一尾部斜杠(目录)
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.*[^/])$ $1/ [R=301,L]
# 前端控制器(如 PHP 框架)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [L]
.htaccess 覆盖:<Directory /var/www/html>
AllowOverride All
Require all granted
</Directory>
sudo systemctl restart apache2(Debian/Ubuntu)或 sudo systemctl restart httpd(CentOS/RHEL)。三 性能优化与资源缓存
# Brotli(若已安装 mod_brotli)
<IfModule mod_brotli.c>
AddOutputFilterByType BROTLI text/html text/css application/javascript image/svg+xml
</IfModule>
# Gzip(通用)
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/javascript application/json image/svg+xml
</IfModule>
# 缓存策略
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType text/html "access plus 1 hour"
ExpiresByType text/css "access plus 1 month"
ExpiresByType application/javascript "access plus 1 month"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType image/gif "access plus 1 year"
ExpiresByType image/svg+xml "access plus 1 year"
ExpiresByType image/webp "access plus 1 year"
</IfModule>
<IfModule mod_headers.c>
Header set Cache-Control "public, max-age=31536000, immutable" env=!no-cache
</IfModule>
四 安全、可抓取性与持续监控
# robots.txt(站点根目录)
User-agent: *
Disallow: /admin/
Disallow: /tmp/
Sitemap: https://example.com/sitemap.xml
sudo apt update && sudo apt upgrade(或 yum/dnf update),保持安全与性能修复。