2013-04-21 2 views
0

Я закончил тем, как www.ww.mywebsite.com/ URLs с результатами поиска Google,Джанго ловит неправильный URL, должны исправить REGEX

Я спросил Google групп и Они указали очевидное, что, www.ww .mywebsite.com, не должно быть ответа 200 ok.

(r'^$', myview), это то, как я ловлю URL для моей домашней страницы,

Я не думаю, что эта проблема возникает причина моих шаблонов URL вызвать, насколько я знаю, URL шаблоны для поймать завершающие слова. www.wwww.example.com/test/, было бы «испытание», чтобы быть нашим словом для обработки, как насчет этого персонажа wwww до моего имени веб-сайта?

+0

Вы должны положить конец регулярному выражению с косой чертой перед знаком доллара. – Caumons

ответ

0

При использовании полного URL-адреса www.example.com/test/ URL-адрес, сопоставляемый с Django, просматривается только на странице /test/. Здесь вам необходимо отфильтровать имена доменов, для которых была введена настройка ALLOWED_HOSTS. Например, вы можете поместить в settings.yml:

ALLOWED_HOSTS = ['mywebsite.com', 'www.mywebsite.com'] 

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

class CanonicalDomainRedirectMiddleware(object): 
    def process_request(self, request): 
     if request.get_host() == 'mywebsite.com': 
      return None 
     if request.is_secure(): 
      protocol = 'https' 
     else: 
      protocol = 'http' 
     return HttpResponsePermanentRedirect('%s://%s/%s' % (
      protocol, 'mywebsite.com', request.get_full_path) 
+0

Если я это сделаю, django выложит много ошибок для пользователей, которые все еще пробуют www.wwwww.example.com, потому что Google уже проиндексировал эти страницы, U знает путь к 301 постоянной переадресации с ww.wwww.example.com как URL-адреса по адресу www.example.com? – user2221346

+0

@ user2221346 Вы правы, я поправился с ответом. –