Перенаправление всего сайта на другой домен
У меня есть веб-сайт, который мы назовем доменным, который изначально был написан на PHP. Каждый действительный URL содержит буквы "php" где-то после части "domain.com/".
Я недавно закончил полную переписку сайта, используя Django, в настоящее время расположенный на beta.domain.com
Я хочу переместить старый сайт PHP на old.domain.com и переместить новый бета-сайт на domain.com. Я хочу сделать это, не пропуская ни секунды. Я хочу, чтобы все старые ссылки перенаправлялись на новый поддомен. Это также включает в себя связанные изображения (которые заканчиваются на.php).
3 ответа
Если ваш старый домен был хорошо написан (без использования абсолютных, жестко закодированных URI и т. Д.), Вы можете выполнить эту задачу очень легко, просто заменив DocumentRoot на VHosts.
если нет, то вы можете вернуться к mod_rewrite. Эта проблема широко обсуждается на SF ( # 66285 может быть отправной точкой)
Если вы хотите перенаправить весь старый сайт old.domain.com на domain.com (новый сайт), то.htaccess на old.domain.com с:
Redirect / http://domain.com
Это перенаправит все запросы от old.domain.com/anything на новый (главная домашняя страница).
Если вы ищете перенаправления 1-к-1, например old.domain.com/directory/file.php -> domain.com/directory/file, то вам необходимо создать правила mod_rewrite для этого, предполагая, что вы находитесь на Apache,
Я просто придумал очень простое решение для этого. Мое решение действительно работает только с Django, но я представляю, что концепция может быть применена к другим веб-фреймворкам.
Сначала направьте все домены в приложение django. Внизу urls.py добавьте это:
(r'\.php', "redirect.views.redirect", ),
Затем создайте приложение с именем "redirect" и добавьте в файл views.py:
def redirect(request):
"""redirect any url with '.php' to the old PHP version"""
return HttpResponseRedirect("http://old.domain.com" + request.get_full_path())
Вероятно, это не самый эффективный способ сделать это, но, похоже, это работает. Это, безусловно, лучше, чем копаться в файлах.htaccess, которые невозможно проверить перед развертыванием...