Ubuntu服务器配置SEO友好型URL
一、前置准备与通用原则
sudo apt update && sudo apt install certbot python3-certbot-apache 或对应 Nginx 插件;执行 sudo certbot --apache -d yourdomain.com(或 --nginx)。Sitemap: https://yourdomain.com/sitemap.xml。二、Apache 配置步骤
sudo apt update && sudo apt install apache2sudo a2enmod rewrite && sudo systemctl restart apache2sudo nano /etc/apache2/sites-available/your-site.conf<Directory /var/www/your-site.com/public_html> 中设置:AllowOverride Allsudo a2ensite your-site.conf && sudo systemctl reload apache2RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?url=$1 [L,QSA]
RewriteRule ^old-page\.html$ /new-page.html [R=301,L]
RewriteRule ^article/([0-9]+)/([a-zA-Z0-9-]+)$ article.php?id=$1&title=$2 [L,QSA]
id、title)并生成对应的canonical与sitemap。三、Nginx 配置步骤
sudo apt update && sudo apt install nginxsudo nano /etc/nginx/sites-available/your-siteserver {
listen 80;
server_name yourdomain.com www.yourdomain.com;
root /var/www/your-site/public_html;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.1-fpm.sock; # 按实际 PHP 版本调整
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}
sudo ln -s /etc/nginx/sites-available/your-site /etc/nginx/sites-enabled/sudo nginx -t && sudo systemctl reload nginxtry_files $uri $uri/ /index.php?$query_string; 是常见“前端控制器”模式,用于实现SEO友好型URL。四、规范化与重定向策略
server {
listen 80;
server_name yourdomain.com;
return 301 $scheme://www.yourdomain.com$request_uri;
}
server {
listen 80;
server_name www.yourdomain.com;
# 正常配置
}
五、验证与上线检查
sudo apache2ctl configtest && sudo systemctl reload apache2sudo nginx -t && sudo systemctl reload nginx/var/log/apache2/error.log 或 /var/log/nginx/error.log