Как перенаправить с домена appspot на пользовательский домен? - PullRequest
1 голос
/ 30 декабря 2011

Я нашел это сообщение от Амира по поводу перенаправления запроса с домена google.appspot на пользовательский домен. Мой вопрос: куда вы кладете что-то подобное, используя Web2py?

**To just add a custom domain, just follow the instructions here: http://code.google.com/appengine/articles/domains.html
And once that works, you can put a check in your code to forward anyone landing on the appspot.com domain to your domain: (example in python)
def get(self):
  if self.request.host.endswith('appspot.com'):
    return self.redirect('www.jaavuu.com', True)
  # ... your code ...**

Ответы [ 3 ]

3 голосов
/ 30 декабря 2011

В начале вашего первого файла модели вы можете сделать:

if request.env.http_host.endswith('appspot.com'):
    redirect(URL(host='www.yourdomain.com', args=request.args, vars=request.vars))

Это сохранит весь исходный URL, за исключением замены yourdomain.appspot.com на www.yourdomain.com. Обратите внимание, что URL() автоматически заполнит текущий контроллер и функцию, но вы должны явно передать текущие request.args и request.vars, чтобы убедиться, что они сохраняются.

1 голос
/ 30 декабря 2011

Это входит в ваш обработчик запросов.

Использование примера из документации web2py :

Пример 8

В контроллере: simple_examples.py

def redirectme():
    redirect(URL('hello3'))

Вы хотели бы сделать что-то вроде этого:

def some_function():
    if request.env.http_host.endswith('appspot.com'):
        redirect(URL('www.yourdomain.com'))
0 голосов
/ 20 августа 2015

С webapp2 вот что-то вроде того, что я сделал, где BaseHandler - это тип всех моих обработчиков:

class BaseHandler(webapp2.RequestHandler):
    def __init__(self, request, response):
        self.initialize(request, response)
        if request.host.endswith('appspot.com'):
            query_string = self.request.query_string
            redirect_to = 'https://www.example.com' + self.request.path + ("?" + query_string if query_string else "")
            self.redirect(redirect_to, permanent=True, abort=True)
...