export const WEBSITE_FILE_DIR = process.env.WEBSITE_FILE_DIR || "/opt/1panel/apps/openresty/openresty/www/sites/"; export function safeJoinSitePath(site: string, ...parts: string[]) { // 防止路径穿越,仅允许字母数字、点、短横线和下划线 const safe = site.replace(/[^a-zA-Z0-9._-]/g, ""); return [WEBSITE_FILE_DIR, safe, ...parts].join("/"); }