nginxconfiguration – replace/重写页面上的所有死链接。 向uri添加前缀

我想为网页上的每个链接注入“项目名称”。

例如:链接和网站http:// localhost / osqa /正在工作,但是当我在osqa页面上时,所有链接都直接指向本地主机http:// localhost / account / signin / – 被破坏…

所以我想重写/redirect所有链接指向项目名称位置,如http:// localhost / osqa / account / signin /

有没有可能,如果是的话怎么做? 现在我正在学习重写和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 

这是我的nginxconfiguration:

 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:/; } } 

我正在改变根path,重写uri,但是没有成功。

rewritetry_files仅适用于传入请求以及传入URL映射到服务器上path的方式。

没有一种可靠的方法来重写实际HTML代码中发送给客户端的URL。

您应该研究其他方法,使您的应用程序将所需的path添加到URL中。 大多数情况下,应用程序都有一个根URL的设置,例如你可以将它设置为你的论坛应用程序的http://localhost/forum 。 设置完成后,论坛会自动将所需的前缀添加到URL中。