我想将“项目名称”注入网页上的每个链接。
示例:链接和站点http://localhost/osqa/正在工作,但是当我在 osqa 页面上时,所有链接都直接指向 localhost http://localhost/account/signin/ - 已损坏...
所以我想重写/重定向所有链接以指向项目名称位置,例如 http://localhost/osqa/account/signin/
是否有可能,如果是,那么该怎么做?现在我正在学习 rewrite 和 try_files。
这是我的项目树结构,项目名称是(osqa、forum、other_project、another_project):
/home/user/webapps/
├── osqa
│ ├── osqa
│ ├── media
│ └── static
├── forum
│ ├── forum
│ ├── media
│ └── static
├── other_project
│ ├── other_project
│ ├── media
│ └── static
└── another_project
├── another_project
├── media
└── static
这是我的 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:/;
}
}
我正在更改根路径并重写 uri 但没有成功。
和仅适用于传入请求
rewrite
以及try_files
传入 URL 映射到服务器上路径的方式。没有可靠的方法来重写发送给客户端的实际 HTML 代码中的 URL。
您应该研究其他方法以使您的应用程序将所需的路径添加到 URL 中。大多数情况下,应用程序都有根 URL 设置,例如,您可以将其设置
http://localhost/forum
为您的论坛应用程序。设置后,论坛会自动将所需的前缀添加到 URL。