Назад | Перейти на главную страницу

Как настроить правила перезаписи nginx для удаления страницы индекса для одностраничного JS-приложения и перенаправления нехешированных URL-адресов на хешированные URL-адреса?

Я разработчик программного обеспечения, пишу одностраничное JS-приложение. Я ни в коем случае не системный администратор, так что терпите меня.

Я бы хотел, чтобы перенаправления происходили каждый раз, когда пользователь попадает на мой сайт с одним из двух потенциально общих / нежелательных шаблонов URL.

  1. mysite.com/index.html -> перенаправить на mysite.com
  2. mysite.com/path/they/remember -> перенаправить на хешированную версию: mysite.com/#/path/they/remember

Я пробовал разные способы, но продолжаю зацикливаться на перенаправлении. Вот текущая конфигурация:

Примечание: вы заметите, что / api также требует, чтобы все запросы были перенаправлены внутри через облегченный прокси-сервер oauth, поэтому любое используемое мной решение не может прервать это перенаправление.

server {

# Redirect all requests through /api/ to apiproxy.php
location /api {
    rewrite ^/api/?(.*)$ /apiproxy.php/$1 last;
}

location / {
    index index.html
}

# use case #1 (combined with use case #2 optionally, a url such as mysite.com/index.html/path/they/remember)
location ~ /index.html/?(.*) {
    return 301 http://mysite.com\#/$1;
}

location ~ /(.*) {
    return 301 http://mysite.com\#/$1;
}

Эта настройка дает мне повсюду петли перенаправления. Есть ли у кого-нибудь предложения или кто-нибудь знает, как выполнить то, что я пытаюсь сделать с помощью nginx?

сначала увеличьте уровень ведения журнала и проверьте свои журналы.

ваш последний блок местоположения кажется поддельным.

также, return 301 http://mysite.com\#/$1; не кажется законным; ты хотел сделать return 301 http://mysite.com/\#/$1/; ?

тебе нужно бежать? #?