build.gradle(:app)

def localProperties = new Properties()
def localPropertiesFile = rootProject.file('local.properties')
if (localPropertiesFile.exists()) {
localPropertiesFile.withReader('UTF-8') { reader ->
localProperties.load(reader)
}
}

def flutterRoot = localProperties.getProperty('flutter.sdk')
if (flutterRoot == null) {
throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
}

def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
if (flutterVersionCode == null) {
flutterVersionCode = '1'
}

def flutterVersionName = localProperties.getProperty('flutter.versionName')
if (flutterVersionName == null) {
flutterVersionName = '1.0'
}

apply plugin: 'com.android.application'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"

android {
compileSdkVersion 28

lintOptions {
disable 'InvalidPackage'
}

defaultConfig {
// TODO: Specif…

파이어베이스 펑션스 서브도메인 설정하기

#1.
DNS 설정에서 맞춤 리소스 A 레코드에 * 를 등록한다.

#2. functions/sites.json
{
    "www":  {
        "title": "에이스에어컨 1666-8944",
        "url": "https://1666-8944.com/",
        "description": "벽걸이에어컨, 에어컨설치, 에어컨, 에어컨청소, 에어컨설치비용, 2IN1에어컨, 스탠드에어컨, 엘지에어콘, 캐리어냉난방기, 냉난방기, 에어콘"
    },
    "1666-8944.com":  {
        "title": "에이스에어컨 1666-8944",
        "url": "https://1666-8944.com/",
        "description": "벽걸이에어컨, 에어컨설치, 에어컨, 에어컨청소, 에어컨설치비용, 2IN1에어컨, 스탠드에어컨, 엘지에어콘, 캐리어냉난방기, 냉난방기, 에어콘"
    },
    "xn--oh5b1bt10b":  {
        "title": "에어컨 - 에이스에어컨 1666-8944",
        "url": "https://에어컨.1666-8944.com/",
        "description": "벽걸이에어컨, 스탠드에어컨, 투인원에어컨, 천장형에어컨, 천정형에어컨, 시스템에어컨, 삼성에어컨, 엘지에어컨, 캐리어에어컨, 위니아에어컨"
    },
...

#3. 파이어베이스 호스팅에서 커스텀 도메인을 추가한다.

#4. functions/index.js
const functions = require('firebase-functions');
const express = require('express');
const app = express();
const ejs = require('ejs');
const fs = require('fs');
const path = require('path');
const subdomain = require('express-subdomain');

app.set('view engine', 'ejs');
app.set('views', path.join(__dirname, 'views'));

const sites       = JSON.parse(fs.readFileSync(__dirname + '/json/sites.json'));
const area        = JSON.parse(fs.readFileSync(__dirname + '/json/area.json'));
const place       = JSON.parse(fs.readFileSync(__dirname + '/json/place.json'));
const type        = JSON.parse(fs.readFileSync(__dirname + '/json/type.json'));
const category    = JSON.parse(fs.readFileSync(__dirname + '/json/category.json'));

const options = {area: area, place: place, type: type, category: category};

app.get('/', (req, res) => {       
    const host = getHost();   
    res.render('site', {
        site: sites[host],
        options: options
    });   
});

app.get('/rss', (req, res) => {       
    const host = getHost();
    res.set('Content-Type', 'text/xml');
    res.render('rss', {
        site: sites[host]
    });   
});

app.get('/sitemap', (req, res) => {       
    const host = getHost();
    res.set('Content-Type', 'text/xml');
    res.render('sitemap', {
        site: sites[host]
    });   
});

app.get('/:keyword', (req, res) => { 
    res.status(404).send('Not Found');   
});

exports.app = functions.https.onRequest(app);

#5. 네비버 웹마스터 도구에서 사이트를 등록한다.

댓글

이 블로그의 인기 게시물

build.gradle(:app)