У меня есть приложение GAE, в котором статические файлы, определенные правилами в файле yaml, под двумя разными именами доменов, настроенными в DNS, и новый, но в остальном это один и тот же контент для каждого. Я бы хотел перенаправить запросы из старого домена в новый домен. Я видел this question, но это теряет способность использовать статические обработчики ресурсов в yaml из того, что я могу сказать, и мне нужно будет настроить статический актив, явно работающий на моем main.py. Есть ли простой способ (идеально в самом файле yaml) сделать перенаправление, когда имя хоста является старым доменом, но сохранить мои статические правила файла для нового домена?перенаправляет все запросы из одного домена в другой с помощью Google App Engine, но сохраняет правила статической маршрутизации в yaml
Update
Вот полное решение, которое я в конечном итоге с помощью:
### dispatch.yaml ###
dispatch:
- url: "*my.domain/*"
module: redirect-module
### redirector.yaml ###
module: redirect-module
runtime: python27
threadsafe: true
api_version: 1
skip_files:
- ^(?!redirector.py$)
handlers:
# Redirect everything via our redirector
- url: /.*
script: redirector.app
### redirector.py ###
import webapp2
def get_redirect_uri(handler, *args, **kwargs):
return 'https://my.domain/' + kwargs.get('path')
app = webapp2.WSGIApplication([
webapp2.Route('/<path:.*>', webapp2.RedirectHandler, defaults={'_uri': get_redirect_uri}),
], debug=False)
Некоторых дополнительных документов: https://cloud.google.com/appengine/docs/python/modules/routing#routing_with_a_dispatch_file
Это еще работает? Я не могу заставить его работать в моем домене –
@AlokKumar, какие ошибки вы получаете? Вы не получаете ожидаемый код статуса http при запросе URL-адреса старого домена, и если нет, что вы видите? (Похоже, webapp2 был обновлен с тех пор, как я изначально написал это, хотя нет очевидных связанных поломки: https://github.com/GoogleCloudPlatform/webapp2/blob/master/CHANGES) Или вы исследовали вопрос о том, является ли проблема с правилами yaml? Разумеется, Google мог бы изменить его обработку за последние 2 года. – qix
Я не ошибаюсь. То, что я хотел, было то, что, если кто-либо называет www-ссылку, он должен перенаправить на ссылку, отличную от www. У меня есть настройка. Вы можете проверить это здесь https://www.cloudnowtech.com Я предполагаю, что модуль перенаправления работает, потому что, когда я развернул новую версию, удалив модуль redirect из yaml, он обновил только экземпляр по умолчанию, а www по-прежнему показывал старую версию. Поэтому модули перенаправления работают, но я хочу, чтобы URL-адрес был изменен. –