lolly/docs/config/rewriting/redirect.conf
xfy 6543422281 docs: 添加 Nginx 配置和 Lua 脚本示例文档
- config: 反向代理、缓存、负载均衡、安全、SSL 等配置模板
- lua: API 网关、认证、动态路由、限流、WebSocket 等脚本示例

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-10 17:59:22 +08:00

144 lines
3.3 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# ============================================================
# Nginx 重定向配置示例
# ============================================================
#
# 功能说明:
# - HTTP to HTTPS 重定向
# - 域名重定向
# - 规范化 URL
#
# Lolly 对应配置:
# server:
# rewrite:
# - pattern: "^http://(.*)$"
# replacement: "https://$1"
# flag: "permanent"
# ============================================================
http {
# HTTP to HTTPS 重定向
server {
listen 80;
server_name secure.example.com;
# 方式一rewrite
rewrite ^(.*)$ https://$host$1 permanent;
# 方式二return推荐更高效
return 301 https://$host$request_uri;
}
# 域名重定向
server {
listen 80;
server_name old-domain.com;
# 重定向到新域名
return 301 https://new-domain.com$request_uri;
}
# 规范化 URL
server {
listen 443 ssl;
server_name example.com www.example.com;
ssl_certificate /etc/nginx/ssl/server.crt;
ssl_certificate_key /etc/nginx/ssl/server.key;
# 移除 www规范化到无 www
if ($host = www.example.com) {
return 301 https://example.com$request_uri;
}
# 或添加 www规范化到 www
# if ($host = example.com) {
# return 301 https://www.example.com$request_uri;
# }
location / {
root /var/www/html;
}
}
# 移除尾部斜杠
server {
listen 80;
server_name noslash.example.com;
# 移除 URL 尾部斜杠(除目录外)
rewrite ^/(.*)/$ /$1 permanent;
location / {
root /var/www/html;
}
}
# 强制尾部斜杠SEO 规范化)
server {
listen 80;
server_name slash.example.com;
# 非文件且无斜杠时添加
if (!-f $request_filename) {
rewrite ^/(.*[^/])$ /$1/ permanent;
}
location / {
root /var/www/html;
}
}
# 基于路径的条件重定向
server {
listen 80;
server_name conditional.example.com;
# 维护模式重定向
location / {
if ($maintenance_mode) {
return 302 /maintenance.html;
}
proxy_pass http://backend:8080;
}
location = /maintenance.html {
root /var/www/maintenance;
}
}
}
# 重定向说明:
#
# 1. 301 vs 302:
# - 301 永久重定向:
# 搜索引擎更新索引
# 浏览器缓存重定向
# 用于永久性变更(域名迁移)
# - 302 临时重定向:
# 搜索引擎保持原 URL
# 浏览器每次都请求
# 用于临时变更(维护、测试)
#
# 2. HTTP to HTTPS:
# 推荐使用 return 而非 rewrite:
# - return 更高效(不解析正则)
# - 直接返回响应
# - 保持原始请求 URI
#
# 3. 规范化:
# URL 规范化防止:
# - 重复内容问题SEO
# - 缓存失效
# - 站点统计混乱
#
# 规范化类型:
# - www vs non-www
# - 尾部斜杠
# - HTTP vs HTTPS
# - 路径大小写
#
# 4. Lolly 支持:
# - rewrite 配置列表
# - 支持所有 flag 参数
# - 正则表达式匹配
# - 捕获组引用