В Django после переадресации домена с маскированием, как получить внутренние ссылки, указывающие на маскированный домен, а не на IP-адрес? - PullRequest
0 голосов
/ 31 декабря 2010

Пример:

У меня есть доменное имя на Godaddy, www.example.com, которое я хочу переправить с маскировкой на 200.200.200.200, который является сервером, размещенным на amazon ec2.Когда я захожу на www.example.com через мой браузер, я вижу свой сайт очень хорошо.Но все ссылки на моем сайте ссылаются на 200.200.200.200/home.Как сделать так, чтобы ссылки указывали на www.example.com/home?Я использую Django в качестве веб-фреймворка.Спасибо!

edit:

Примером ссылки, которую я использую, является <a href="{% url home %}">home</a>, поэтому она отображается как <a href="/home/" >home</a>

1 Ответ

0 голосов
/ 01 января 2011

Вы уверены, что вам нужно использовать маскировку вместо пересылки?С переадресованными URL-адресами этого не происходит, но я предполагаю, что, поскольку маскирование просто вставляет новый URL-адрес в адресную строку, фактически ссылаясь на исходную страницу, любые относительные ссылки по-прежнему ссылаются на исходный URL-адрес.Кроме того, я понимаю, что использование маскировки изменяет поведение сканеров Google, поэтому ваш сайт может отображаться не так высоко, как должен быть в результатах поиска, и на это стоит обратить внимание, если это важно для вас.Если по какой-либо причине вам нужна маскировка, я думаю, вам придется использовать абсолютные URL-адреса во всех ваших ссылках (возможно, в GoDaddy есть некоторые настройки, чтобы избежать этого, но я понятия не имею - если таковые имеются, надеюсь, кто-то ответит).

Самый простой способ использовать абсолютные URL в django - это, вероятно, определить переменную ROOT_URL (то есть ROOT_URL = <a href="http://www.example.com" rel="nofollow">http://www.example.com</a>) в settings.py.Тогда ваша домашняя ссылка будет выглядеть так:

<a href="{{ ROOT_URL }}{% url home %}">home</a>

Вам также нужно будет передать 'ROOT_URL'=settings.ROOT_URL в представление HtmlResponse (или вместо этого передать context_instance), чтобы шаблон имел доступ кпеременная ROOT_URL.

Надеюсь, это поможет!

...