2009-03-18 1 views
2

Я создал простой сайт в Django. URL-адреса, которые я использую, - http ::/www.example.com/nl/ и http://www.example.com/fr/.Как перенаправить HTTP-запрос с apache/django

Мои Джанго urls.py имеет следующую строку:

(г '^ (Pnl | фр) /?', 'Example.views.index'),

В example.views.index Я проверяю параметр языка. Если это «nl», я показываю шаблон. Если это «fr», я показываю другой шаблон.

Это отлично работает. Теперь клиент сделал два разных URLs:

http://www.dutch.com/ и http://www.french.com/

И, наконец, я задам вопрос:

Есть ли способ для меня, чтобы использовать новые URL', без изменения моего Джанго коды? Я предполагаю, что я могу сказать apache представить страницу http://www.example.com/nl/, когда пользователь переходит к http://www.dutch.com/. Но как мне это сделать? И django все еще сможет получить параметр «language» из URL-адреса?

Заранее благодарим за любые ответы.

+0

Важно отметить, что переход на http://www.dutch.com/nl/ не является вариантом. – 2009-03-18 10:03:05

+0

Итак, вы хотите перенаправить все с http://www.dutch.com на http://www.example.com/nl/? – andi

+0

Это именно то, что я хочу, и. Также важно, чтобы я все еще имел доступ к «nl» в Django. – 2009-03-18 12:35:33

ответ

2

Если вы можете использовать .htaccess файлы на http://www.dutch.com, которые вы можете использовать директиву перенаправления веб-сервера Apache, как так

redirectMatch 301 ^(.*)$ http://www.example.com/nl/ 

Это будет перенаправлять все запросы посланные dutch.com в example.com/nl

Вы также можете использовать

redirect 301 /index.html http://www.example.com/nl/ 

Это будет перенаправлять только «index.html» на dutch.com в example.com/nl/ (не e, что первый параметр - это путь и не может быть URL-адресом http://www)

+0

Кажется, это может быть то, что мне нужно. Что будет видеть пользователь? Будет ли URL-адрес браузера изменен на www.example.com/nl или он останется на dutch.com? – 2009-03-18 12:38:13

+0

Кроме того, если на странице index.html есть ссылка на «../fr/index.html», что произойдет, когда я нажму? Пойдет ли оно на example.com/fr/index.html или это даст ошибку, так как я не могу перейти на одну папку на dutch.com? – 2009-03-18 12:39:10

+0

Да, URL-адрес изменится на example.com/nl, поэтому второе не должно быть проблемой. Пользователь может даже не заметить, не ищет ли он URL. Второй вопрос не происходит. – andi