2011-05-13 6 views
0

Я запускаю приложение django с помощью nginx. Я хочу написать правило переадресации таким образом, чтобы , если пользователь ударил по URL-адресу http://example.com/django/nginx/, затем перенаправляет его на http://example.com/django/#!/nginx/. Я хочу, чтобы знать это регулярное выражение.правило перенаправления для nginx?

Благодаря

ответ

0

Вы хотите справиться с этим на стороне клиента (через Javascript, скорее всего), а не через Nginx.

Из того, что я понимаю, точка # в URL-адресах (согласно спецификации) заключается в том, что часть, которая приходит после #, не достигает сервера.

Также см этот вопрос некоторую информацию о библиотеках JS для работы с хэш-BANG URLs: Are there any javascript libraries for working with hashbang/shebang (#!) urls?

0

Учитывая вам пример, я предполагаю, что вы работаете с URL-адреса в виде «HTTP: // 1/2/3/", поэтому ничего не выходит за пределы 3. Если вы хотите разделить 2 и 3 на«/#!/». Если это так, вы можете попробовать следующее.

from django.views.generic.simple import redirect_to 

urlpatterns = patterns('', 
    ('^django/(?P<ajax_section>\w+)/$', redirect_to, {'url': '/django/#!/%(ajax_section)s/'}), 
) 

Вышеупомянутое предполагает, что 2 («django») в URL-адресе будет исправлено. Если это не так, вам придется попробовать и сделать его параметром.

+0

делает django url поддержка #! в URL? –

+1

Как указывал Брант, после обозначения номера обычно игнорируется. Поэтому он обычно используется в сочетании с JavaScript для создания веб-сайтов на основе ajax. Если вы хотите перенаправить пользователей на правильную версию URL-адреса ajax, если они ошибочно предполагают, тогда мой ответ должен помочь. В противном случае ответ Бранта кажется лучшим. – solartic

Смежные вопросы