Quero injetar "nome do projeto" em todos os links de uma página da web.
Exemplo: link e site http://localhost/osqa/ está funcionando, mas quando estou na página osqa, todos os links estão direcionando para localhost diretamente http://localhost/account/signin/ - estão quebrados...
então eu quero reescrever/redirecionar todos os links para apontar para o local do nome do projeto, como http://localhost/osqa/account/signin/
É possível, se sim, como fazer? No momento, estou aprendendo sobre reescrita e try_files.
Esta é a estrutura da árvore do meu projeto, os nomes dos projetos são (osqa, fórum, outro_projeto, outro_projeto):
/home/user/webapps/
├── osqa
│ ├── osqa
│ ├── media
│ └── static
├── forum
│ ├── forum
│ ├── media
│ └── static
├── other_project
│ ├── other_project
│ ├── media
│ └── static
└── another_project
├── another_project
├── media
└── static
Esta é a minha configuração nginx:
server {
listen 8080;
server_name localhost;
root /home/user/webapps/;
location ~ ^\/(?P<app>[\w-_]+)(/.*)?$ {
alias /home/user/webapps/$app/;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://unix:/home/user/webapps/$app/run/gunicorn.sock:/;
}
}
Eu estava mudando o caminho raiz e reescrevendo uri, mas sem sucesso ainda.
Os
rewrite
etry_files
aplicam-se apenas a solicitações de entrada e à maneira como as URLs de entrada são mapeadas para caminhos no servidor.Não há uma maneira confiável de reescrever as URLs que estão no código HTML real enviado aos clientes.
Você deve estudar outros métodos para fazer com que seus aplicativos incluam o caminho necessário nos URLs. Na maioria das vezes, os aplicativos têm uma configuração para URL raiz, por exemplo, você definiria isso
http://localhost/forum
para seu aplicativo de fórum. Depois de definir isso, o fórum adiciona automaticamente os prefixos necessários às URLs.