initialize.js 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197
  1. export default function (context) {
  2. console.log("initialize.........");
  3. let proto = "https";
  4. let url = "";
  5. let cookies = "";
  6. // Server-side
  7. if (process.server) {
  8. const {
  9. req,
  10. redirect
  11. } = context;
  12. console.log(req.url)
  13. let host = req.headers.host;
  14. console.log("initialize...........req.............header");
  15. let proto = "https";
  16. if (req.headers["x-forwarded-proto"]) {
  17. proto = req.headers["x-forwarded-proto"];
  18. } else if (req.headers["x-scheme"]) {
  19. proto = req.headers["x-scheme"];
  20. } else if (host.indexOf("local.") != -1) {
  21. proto = "http";
  22. }
  23. url = proto + "://" + host;
  24. cookies = req.headers.cookie;
  25. // console.log("server", req.headers)
  26. }
  27. // Client-side
  28. if (process.client) {
  29. console.log("client side............");
  30. url = document.location.href;
  31. let proto = "http";
  32. if (url.indexOf("https://") != -1) {
  33. proto = "https";
  34. }
  35. cookies = document.cookie;
  36. console.log("client", document.location)
  37. }
  38. let groups = {}
  39. try {
  40. let regx = new RegExp(
  41. "((?<branch>[a-z0-9_\\-]+)\\.)?(?<env>(www|prod|test|local|test-rooter|test-jishuin|prod-rooter|prod-jishuin|rooter|jishuin|app|test-kaifain|prod-kaifain|kaifain|test-job|job|prod-job|local-rooter|local-job|local-jishuin|local-kaifain))\\.proginn\\.com(\\:(?<port>\\d+))?",
  42. "gim"
  43. );
  44. console.log(regx);
  45. console.log(url);
  46. groups = regx.exec(url).groups;
  47. } catch (e) {
  48. //失败默认设置为线上环境
  49. const {
  50. app
  51. } = context.app.$deviceType
  52. if (app) {
  53. groups = {
  54. env: "app"
  55. }
  56. } else {
  57. groups = {
  58. env: "www"
  59. }
  60. }
  61. }
  62. let api = "",
  63. jishuinUrl = "",
  64. rooterUrl = "",
  65. siteUrl = "",
  66. kaifainUrl = "",
  67. jobUrl = "",
  68. urlType = "";
  69. console.log(groups);
  70. if (groups) {
  71. let {
  72. branch,
  73. env,
  74. port
  75. } = groups;
  76. switch (env) {
  77. case "www":
  78. api = "https://www.proginn.com";
  79. siteUrl = "https://www.proginn.com";
  80. jishuinUrl = "https://jishuin.proginn.com";
  81. kaifainUrl = "https://kaifain.proginn.com";
  82. rooterUrl = "https://rooter.proginn.com";
  83. jobUrl = "https://job.proginn.com";
  84. break;
  85. case "jishuin":
  86. case "kaifain":
  87. case "job":
  88. api = "https://jishuin.proginn.com";
  89. siteUrl = "https://www.proginn.com";
  90. jishuinUrl = "https://jishuin.proginn.com";
  91. kaifainUrl = "https://kaifain.proginn.com";
  92. rooterUrl = "https://rooter.proginn.com";
  93. jobUrl = "https://job.proginn.com";
  94. break;
  95. case "app":
  96. api = "https://app.proginn.com";
  97. siteUrl = "https://app.proginn.com";
  98. jishuinUrl = "https://jishuin.proginn.com";
  99. kaifainUrl = "https://kaifain.proginn.com";
  100. rooterUrl = "https://rooter.proginn.com";
  101. jobUrl = "https://job.proginn.com";
  102. break;
  103. case "test":
  104. case "test-jishuin":
  105. case "test-rooter":
  106. case "test-kaifain":
  107. case "test-job":
  108. api = "https://" + branch + ".test.proginn.com";
  109. siteUrl = "https://" + branch + ".test.proginn.com";
  110. jishuinUrl = "https://" + branch + ".test-jishuin.proginn.com";
  111. kaifainUrl = "https://" + branch + ".test-kaifain.proginn.com";
  112. rooterUrl = "https://" + branch + ".test-rooter.proginn.com";
  113. jobUrl = "https://" + branch + ".test-job.proginn.com";
  114. break;
  115. case "local":
  116. case "local-job":
  117. case "local-kaifain":
  118. case "local-jishuin":
  119. case "local-rooter":
  120. if (port && port != "80") {
  121. api = "http://local.proginn.com";
  122. siteUrl = "http://local.proginn.com:" + port;
  123. jishuinUrl = "http://jishuin.local.proginn.com";
  124. kaifainUrl = "http://kaifain.local.proginn.com";
  125. rooterUrl = "http://rooter.local.proginn.com";
  126. jobUrl = "http://job.local.proginn.com";
  127. } else {
  128. api = "http://local.proginn.com";
  129. siteUrl = "http://local.proginn.com";
  130. jishuinUrl = "http://jishuin.local.proginn.com";
  131. kaifainUrl = "http://kaifain.local.proginn.com";
  132. rooterUrl = "http://rooter.local.proginn.com";
  133. jobUrl = "http://job.local.proginn.com";
  134. }
  135. break;
  136. case "prod":
  137. case "prod-jishuin":
  138. case "prod-rooter":
  139. case "prod-kaifain":
  140. case "prod-job":
  141. api = "https://" + branch + ".prod.proginn.com";
  142. siteUrl = "https://" + branch + ".prod.proginn.com";
  143. jishuinUrl = "https://" + branch + ".prod-jishuin.proginn.com";
  144. kaifainUrl = "https://" + branch + ".prod-kaifain.proginn.com";
  145. rooterUrl = "https://" + branch + ".prod-rooter.proginn.com";
  146. jobUrl = "https://" + branch + ".prod-job.proginn.com";
  147. break;
  148. default:
  149. // 按生产处理
  150. api = "https://www.proginn.com";
  151. siteUrl = "https://www.proginn.com";
  152. jishuinUrl = "https://jishuin.proginn.com";
  153. kaifainUrl = "https://kaifain.proginn.com";
  154. rooterUrl = "https://rooter.proginn.com";
  155. jobUrl = "https://job.proginn.com";
  156. break;
  157. }
  158. } else {
  159. // 按生产处理
  160. api = "https://www.proginn.com";
  161. siteUrl = "https://www.proginn.com";
  162. jishuinUrl = "https://jishuin.proginn.com";
  163. kaifainUrl = "https://kaifain.proginn.com";
  164. rooterUrl = "https://rooter.proginn.com";
  165. jobUrl = "https://job.proginn.com";
  166. }
  167. context.store.commit("updateDomainConfig", {
  168. api: api,
  169. siteUrl,
  170. jishuinUrl: jishuinUrl,
  171. kaifainUrl: kaifainUrl,
  172. rooterUrl: rooterUrl,
  173. jobUrl: jobUrl,
  174. urlType
  175. });
  176. context.store.commit("updateDeviceType", context.app.$deviceType || {});
  177. context.store.commit("updateIsPC", context.app.$deviceType.pc || false);
  178. context.store.commit("updateIsWeixin", context.app.$deviceType.wx || false);
  179. // 301
  180. // Server-side
  181. if (process.server) {
  182. console.log("server side redirect 301............");
  183. const {
  184. req,
  185. redirect
  186. } = context;
  187. let reqUrl = new URL(req.url, url);
  188. if (reqUrl.pathname.indexOf('/job/') === 0 && url.indexOf('job.') === -1) {
  189. redirect(301, jobUrl + reqUrl.pathname.replace('/job/', '/') + reqUrl.search)
  190. }
  191. if (reqUrl.pathname.indexOf('/kaifain/') === 0 && url.indexOf('kaifain.') === -1) {
  192. redirect(301, kaifainUrl + reqUrl.pathname.replace('/kaifain/', '/') + reqUrl.search)
  193. }
  194. // console.log("server", req.headers)
  195. }
  196. }