|
|
@@ -133,7 +133,8 @@ function applyReplacements(template, map) {
|
|
|
|
|
|
/**
|
|
|
* 生成 host → folder 的 CloudFront Function(viewer-request,运行时 cloudfront-js-2.0)。
|
|
|
- * 逻辑对齐 load.m.js getSiteConfig():去 www → HOST_ALIAS → 否则取首段标签 → 校验 folder 是否存在 → 否则 default。
|
|
|
+ * 逻辑对齐 load.m.js getSiteConfig():匹配完整域名或任意子域名下的 HOST_ALIAS,
|
|
|
+ * 再从主域名方向查找品牌标签 → 校验 folder 是否存在 → 否则 default。
|
|
|
* 仅改写「文档请求」("/"、扩展名为空的 SPA 路由、index.html);静态资源(带扩展名)保持原路径,从根目录回源。
|
|
|
*/
|
|
|
function generateCloudFrontFn(folders, hostAlias) {
|
|
|
@@ -161,13 +162,23 @@ var HOST_ALIAS = ${aliasJson};
|
|
|
|
|
|
function pickFolder(rawHost) {
|
|
|
var host = (rawHost || "").toLowerCase();
|
|
|
- if (host.startsWith("www.")) host = host.slice(4);
|
|
|
var colon = host.indexOf(":");
|
|
|
if (colon !== -1) host = host.slice(0, colon);
|
|
|
+ host = host.replace(/\\.$/, "");
|
|
|
|
|
|
- // 首段标签对应 load.m.js 的 getSitePrefix();整域名例外走 HOST_ALIAS。
|
|
|
- var folder = HOST_ALIAS[host] || host.split(".")[0];
|
|
|
- return FOLDERS[folder] ? folder : "default";
|
|
|
+ // 别名同时匹配裸域名和任意层级子域名,例如 m.ukslot777.com。
|
|
|
+ for (var aliasHost in HOST_ALIAS) {
|
|
|
+ if (host === aliasHost || host.endsWith("." + aliasHost)) {
|
|
|
+ return FOLDERS[HOST_ALIAS[aliasHost]] === true ? HOST_ALIAS[aliasHost] : "default";
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 从主域名方向查找品牌标签,例如 app.m.blazingreels777.com → blazingreels777。
|
|
|
+ var parts = host.split(".");
|
|
|
+ for (var i = parts.length - 1; i >= 0; i--) {
|
|
|
+ if (FOLDERS[parts[i]] === true) return parts[i];
|
|
|
+ }
|
|
|
+ return "default";
|
|
|
}
|
|
|
|
|
|
// nginx merge_slashes:把路径里 2 个及以上连续的 / 压成 1 个(保留开头的单个 /)。
|