在nginx服务器中打开其他网站链接
我是Nginx新手,我已经使用设置了服务器。现在,当我添加到其他站点的链接时,例如,当我在页面上单击此链接时,服务器会指示我访问。服务器正在将另一个链接附加到我的网站链接。我该如何改变这一点。我调查过这些地方 , 但我就是做不到。任何帮助都将不胜感激。谢谢在nginx服务器中打开其他网站链接,nginx,Nginx,我是Nginx新手,我已经使用设置了服务器。现在,当我添加到其他站点的链接时,例如,当我在页面上单击此链接时,服务器会指示我访问。服务器正在将另一个链接附加到我的网站链接。我该如何改变这一点。我调查过这些地方 , 但我就是做不到。任何帮助都将不胜感激。谢谢 server { listen 80; server_name $hostname; location /static { alias /var/www/<app-nam
server {
listen 80;
server_name $hostname;
location /static {
alias /var/www/<app-name>/static;
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location / {
include uwsgi_params;
uwsgi_pass unix:/tmp/uwsgi.sock;
uwsgi_param UWSGI_PYHOME /var/www/<app-name>/env;
uwsgi_param UWSGI_CHDIR /var/www/<app-name>/project;
uwsgi_param UWSGI_MODULE <project-name>.wsgi:application;
}
}
服务器{
听80;
服务器名称$hostname;
位置/静态{
别名/var/www//static;
}
错误\u第404/404.html页;
错误\u第500页502 503 504/50x.html;
location=/50x.html{
root/usr/share/nginx/html;
}
地点/{
包括uwsgi_参数;
uwsgi_pass unix:/tmp/uwsgi.sock;
uwsgi_param uwsgi_PYHOME/var/www//env;
uwsgi_param uwsgi_CHDIR/var/www//project;
uwsgi_参数uwsgi_模块。wsgi:应用程序;
}
}
您根本没有从发布的nginx配置进行任何重定向,
除了/static/和/50x.html之外的所有内容都会传递到uwsgi应用程序
因此,必须在uwsgi应用程序中进行重定向
就从nginx内部重定向而言,简单的情况如下:
location /redirected-path {
#for 302 redirect
rewrite ^ http://anotherwebsite.example.com/path-on-other-site redirect;
#for 301 redirect
# rewrite ^ http://anotherwebsite.example.com/path-on-other-site permanent;
}
(更复杂的情况涉及的正则表达式比^
更复杂)
更新:
好的,从您在下面的注释中链接的代码中,您真正想要做的是更改输出的html代码锚定标记的href值
这样做的正确位置是在后端代码中(即,在您连接到的uwsgi应用程序中)
您可以通过以下重写来完成此操作:
location /main {
rewrite ^/main(.*) http://www.mysite.com$1 permanent;
}
但是这有一个很大的缺点,即需要到服务器的额外往返,然后客户端会:
使用服务器重写是一种黑客行为,除非你无法访问后端代码,否则你真的应该跳过它。你当前的配置是什么样子的?因此,在阅读了有关重定向的内容后,我可以想出这个方法,因此我应该在我的应用程序代码中添加重定向。我会尽力做到的,非常感谢你的帮助。