Я заранее прошу прощения за этот вопрос, так как он задавался много раз, но я не смог найти специфическое решение для Django, которое может решить эту проблему.
Описание:
- Джанго: 2,1
- Python: 3,7
- Хост приложений: Google app engine
- Провайдер домена:
Домены Google
У меня есть приложение Django, размещенное на движке приложений Google с URL-адресом [id] .appspot.com. Я также зарегистрировал собственный домен, например, www.example.com на доменах Google. Я хочу перенаправить любого, кто пытается получить доступ к [id] .appspot.com, на сайт www.example.com (301). Мой пользовательский домен работает нормально.
До сих пор, основываясь на поиске в google и stackoverflow, я обнаружил следующее:
- Добавить следующий канонический тег на каждую страницу
<link rel="canonical" href="https://www.example.com/" />
Это должно уведомить поисковые системы, какой домен вы предпочитаете, когда один и тот же контент доступен из нескольких доменов. Я добавил это в заголовок своего сайта, но это похоже на обходной путь.
- Используйте функцию проверки и перенаправления : В этом посте есть несколько хороших подходов для приложений webapp2. Однако это 10-летняя публикация, поэтому не уверен, что какое-либо из этих решений напрямую работает или может потребоваться изменение кода.
В ответ «Алекс Мартелли» предложил проверить os.environ ['HTTP_HOST'] .ndswith ('. Appspot.com') и перенаправить. Я не уверен, как это сделать в приложении Django, размещенном на движке приложения.
В том же посте есть еще один способ добиться этого путем переопределения webapp2.RequestHandler.initialize. но опять же я не думаю, что это применимо к Джанго.
Я ищу конкретный ответ для Django, является ли параметр перенаправления в app.yaml или dispatch.yaml похожим на это сообщение в блоге или переопределение функции django для перенаправления с [id] .appspot.com на www .example.com.