Перенаправление старого URL для нового с микро-каркасом колба

StackOverflow https://stackoverflow.com/questions/3789462

Вопрос

Я делаю новый веб-сайт для замены тока, используя микро-каркасную франсфер (на основе Werkzeug), который использует Python (2.6 в моем случае).

Основная функциональность и многие страницы одинаковы. Однако, используя колбу, многие из предыдущих URL-адресов отличаются от старых.

Мне нужен способ каким-то образом хранить каждый из старых URL и новый URL-адрес, так что если пользователи в старом URL они просто пересылаются на новый URL, и все работает нормально для них.



Кто-нибудь знает, возможно ли это в колбе?

Заранее спасибо за вашу помощь :-)

Это было полезно?

Решение

Что-то вроде этого должно начать:

from flask import Flask, redirect, request

app = Flask(__name__)

redirect_urls = {
    'http://example.com/old/': 'http://example.com/new/',
    ...
}

def redirect_url():
    return redirect(redirect_urls[request.url], 301)

for url in redirect_urls:
    app.add_url_rule(url, url, redirect_url)

Другие советы

Другой способ сделать это, это изменить обработчик для старого URL просто перенаправить явно.

from flask import Flask, redirect, url_for

app = Flask(__name__)

@app.route('/new')
def new_hotness():
    return 'Sizzle!'

@app.route('/old')
def old_busted():
    return redirect(url_for('new_hotness'))

Если у вас уже есть обработчик для старого URL, то вы можете найти самую простое, что нужно сделать, это вышесказанное, то есть просто замена тела:

return redirect(url_for('new_hotness'))

Ответ Радомира может быть предпочтительным, особенно если у вас есть много старого новых сопоставлений URL-адресов.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top