Как я иду о перенаправлении всех запросов на domain.com/... на www.domain.com/... с 301 в django сайте?
Очевидно, это не может быть сделано в urls.py, потому что Вы только получаете часть пути URL там.
Я не могу использовать модификацию, переписывают в .htaccess, потому что .htaccess файлы ничего не делают при Django (я думаю).
Я предполагаю что-то в промежуточном программном обеспечении или апачском conf?
Я выполняю Django на сервере Linux с Plesk, с помощью ультрасовременного WSGI
Обсуждение WebFaction, на которое кто-то указал, верно в отношении конфигурации, вам просто нужно применить ее самостоятельно, а не через панель управления.
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example.com$
RewriteRule (.*) http://www.example.com/$1 [R=301,L]
Поместите в файл .htaccess или в основную конфигурацию Apache в соответствующем контексте. Если внутри VirtualHost в основной конфигурации Apache, то ServerName будет www.example.com, а ServerAlias - example.com, чтобы убедиться, что виртуальный хост обрабатывает оба запроса.
Если у вас нет доступа к конфигурации Apache, то при необходимости это можно сделать с помощью WSGI-обертки вокруг точки входа Django WSGI-приложения. Что-то вроде:
import django.core.handlers.wsgi
_application = django.core.handlers.wsgi.WSGIHandler()
def application(environ, start_response):
if environ['HTTP_HOST'] != 'www.example.com':
start_response('301 Redirect', [('Location', 'http://www.example.com/'),])
return []
return _application(environ, start_response)
Исправление этого, чтобы включить URL в сайт и разобраться с https, оставим на усмотрение читателя. :-)
.Полная ветка по проблеме существует здесь http : //forum.webfaction.com/viewtopic.php? id = 1516