
Я разработчик ПО, пишу одностраничное JS-приложение. Я ни в коем случае не сисадмин, так что, пожалуйста, отнеситесь ко мне с пониманием.
Мне бы хотелось, чтобы перенаправления происходили каждый раз, когда пользователь заходит на мой сайт с одним из двух потенциально распространенных/нежелательных шаблонов URL.
- mysite.com/index.html -> перенаправление на mysite.com
- 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?
решение1
во-первых, увеличьте уровень ведения журнала и проверьте свои журналы.
Ваш последний блок местоположения, похоже, фальшивый.
также, return 301 http://mysite.com\#/$1;
кажется, это не законно; вы хотели сделать
return 301 http://mysite.com/\#/$1/;
?
Вам нужно бежать #
?