rxcr.net
当前位置:首页 >> nginx如何实现跳转但是url不变 >>

nginx如何实现跳转但是url不变

if ( $query_string ~ "view=string" ) {rewrite ^/default.html hbz/? redirect;}

像如 rewrite ^/abc$ http://www.ppp.com:8080/aaa last;的这种跳转规则,作如下的解释:如果rewrite指令的第二个参数(replacement)以http或者以https开头,则nginx内部会将该跳转作为临时重定向去处理,表现到http的响应就是会以302响应状态作为响应.以302,301等的重定向肯定会修改地址栏的url.这个是没办法改变的.如果不想改变地址栏的url,那可以考虑使用内部跳转:rewrite "/xxx" /abc last;的这种跳转形式.但是这种重定向只能对站内的url进行重写.

if ( $query_string ~ "view=string" ) { rewrite ^/default.html hbz/? redirect; }

确保安装 nginx 时 ./configure 有加入 --with-http_perl_module 这一项,然后在 nginx.conf 配置文件的http{}内、server{}前面加入:(加入内容在结构上与 server{} 并列) perl_set $urldecode 'sub {my $inf = shift; my $url = $inf-args; my $inx = index($

server { listen 80; server_name 二级域名; location / { rewrite ^/(.*)$ 重定向的域名$1 permanent; } } ```

用正则匹配

你得了解“请求转发”和“重定向”的区别,这两者都能实现页面跳转: “请求转发”时,变量至少在request范围共享,浏览器url不变,但只能在当前webapp下进行; “重定向”时,变量不共享,浏览器url变为跳转到的页面,可以是任意(

url没有变化是因为这个跳转是在服务器内部跳转的.我简单说下浏览器的工作原理.浏览器发出一个地址请求到服务器,服务器根据这个地址找到相应的页面资料返回给浏览器,最后浏览器将信息显示给用户.但服务器内部跳转的时候,对浏览器来说是不知道的,它只负责把服务器返回的信息显示出来.在java web里 servlet的doGet或doPost中用response.sendRedirect("重定向的地址"); 在jsp中也可以用response.sendRedirect("重定向的地址"); jsp中还可以使用特定的标签来重定向.

在访问页面的时候利用Ajax 加载另一个页面效果和iframe 是一样的 在一个页面里加载另一个页面

location @404 { # 当找不到文件的时候,跳到这里处理 if ( $request_filename ~= '.mp4$' ) { # 如果文件名后zhidao缀是 mp4 proxy_pass http://b.com; # 将请求转发到另一台机器上内 }}error_page 404 @404; # 设置404是跳转到 @404 处理以上配置没有测试过,只是大概说一个思路,你可以根据你的实际情况容去测试盒调整~~

网站首页 | 网站地图
All rights reserved Powered by www.rxcr.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com