перенаправление домена с подстановочным знаком в app.yaml

Я уже настроил свой DNS так, чтобы все поддомены указывали на @, и я могу сказать, что это работает, потому что теперь я получаю ошибку appengine, что URL-адрес не найден на сервере.

Как настроить файл app.yaml, чтобы он перехватывал и указывал все поддомены моего личного домена на один и тот же статический файл? Спасибо!

Пример:

http://learnnow.us (работает)

http://something.learnnow.us (нет)

DNS Entry

name  |  type   |   data
*     |  CNAME  |   @


app.yaml

- url: /
  static_files: index.html
  upload: index\.html

- url: *
  static_files: index.html
  upload: index\.html

person user1318423    schedule 18.09.2014    source источник
comment
В app.yaml вы указываете обработчики для своего приложения. Конфигурация подстановочного знака субдомена объясняется в [1]. Обработчики статических файлов описаны в [2]. Не могли бы вы добавить более подробную информацию о вашем случае использования: что это будет за статический файл? Чего именно вы пытаетесь достичь? [1]: developers.google.com/appengine/docs/ [2 ]: developers.google.com/appengine/docs/python/config/   -  person Nikita Uchaev    schedule 19.09.2014


Ответы (2)


Поскольку у вас есть учетная запись Google Apps, чтобы сопоставить все поддомены с вашим приложением, вам необходимо добавить свое приложение в раздел App Engine Apps консоли администратора для Learnnow.us. Затем вы добавляете сопоставление *.learnnow.us и создаете запись CNAME для *, указывающую на ghs.googlehosted.com.

Это также можно сделать через Developers Console -> Your_App -> Compute -> App Engine -> Настройки -> Пользовательские домены (хотя не проверял).

person Nikita Uchaev    schedule 23.09.2014
comment
Я изменил cname на ghs.googlehosted.com... но та же ошибка. (Например, если вы перейдете на someting.learnnow.us, вы увидите ошибку 404 appengine вместо ошибки 404 браузера по умолчанию. Если вы перейдете на b.site4u2.com, вы получите ошибку браузера по умолчанию.) Я верю в это. это конфигурация app.yaml с ошибкой... - person user1318423; 23.09.2014
comment
Но добавили ли вы сопоставление *.g.learnnow.us для своего приложения в консоли администратора Google Apps? - person Nikita Uchaev; 23.09.2014

Сопоставление поддоменов выполняется на уровне DNS. Настройте это через поставщика услуг DNS, у которого вы зарегистрированы. Сопоставьте все поддомены с вашим основным доменом.

Сопоставление маршрутов выполняется в app.yaml. Как только запрос достигнет вашего приложения, конфигурация маршрута в app.yaml с url: /.* сопоставит все маршруты с этим обработчиком.

Учитывая, что ваша путаница с сопоставлением DNS и конфигурацией маршрута app.yaml должна быть прояснена, примите этот ответ как действительный. Если вы испытываете другие проблемы при выполнении более сложных действий, как видно из ваших комментариев, создайте новый вопрос. Изменения в вашем вопросе должны содержать только более релевантную информацию для исходного вопроса, а комментарии не должны вводить новые вопросы.

person Nick    schedule 13.12.2014