nginx302错误怎么解决 如何设置301/302重定向?
如何设置301/302重定向?
必须看一个发下代码示例,关于nginx301302跳转的。
301跳转设置:
server{
listen80
server_namedowncc
rewrite^/(
rewrite^/(.*)/$1permanent
}
last–基本都都用这个Flag。
break–中止Rewirte,是在继续匹配
redirect–回原先重定向的HTTP状态302
permanent–赶往无限制重定向的HTTP状态301
Nginx的重定向都用到了Nginx的HttpRewriteModule,下面很简单讲解100元以内如何使用的方法:
rewrite命令
nginx的rewrite应该是apache的rewriterule(大多数情况下可以把原有apache的rewrite规则加上引号就这个可以然后可以使用),它是可以用在server,location和IF条件判断块中,下命令格式追加:
rewrite正则表达式替换目标flag标记
flag标记这个可以用200以内几种格式:
last–基本都用这个Flag。
break–中止Rewirte,是在再继续版本问题
redirect–赶往正式重定向的HTTP状态302
permanent–前往永久重定向的HTTP状态301
最重要的尽量:
last和break单独利用URL重写,浏览器地址栏的URL地址减少,不过在服务器端ftp连接的路径再一次发生了变化
redirect和permanent为了实现方法URL跳转,浏览器地址栏会不显示跳转后的URL地址
.例如下面这段设置nginx将某个目录下面的文件重定向到另一个目录,$2对应第二个括号(.*)中按的字符串:
location/download/{
rewrite^(/download/.*)/m/(.*)..*$$1/nginx-rewrite/$2.gzbreak
}
nginx重定向的IF条件确定
在server和location两种情况下这个可以不使用nginx的IF条件确认,条件可以为100元以内几种:
正则表达式
如:
匹配判断
~为怎么分辨大小写错误看操作!~为区分大小写不不兼容
~*为不可以区分字母大小写版本问题!~为不可以区分大小写不匹配
比如下面设定nginx在用户在用ie的使用重定向到/nginx-ie目录下:
if($http_user_agent~MSIE){
rewrite^(.*)$/nginx-ie/$1break
}
文件和目录判断
-f和!-f确认是否需要存在地文件
-d和!-d推测是否需要必然目录
-e和!-e判断如何确定修真者的存在文件或目录
-x和!-x判断文件是否是可负责执行
例如下面设定nginx在文件和目录不未知的时候重定向:
if(!-e$request_filename){
proxy_基本没戏127.0.0.1
}
return
直接返回http代码,或者可以设置nginx防盗链:
location~*.(gifjpgpngswfflv)${
valid_referersnoneblocked
if($invalid_referer){
return404
}
}
如何系统的学习JAVA?
java的整体生态和积累知识实在是太大了。95年一直20多年的积累,简直不属于到计算机软硬件的方方面面。我暂且放过就认为,提主所说的精通于,是指jdk本身和一些必要的数据结构这些正确框架和面向对象的基本上思想吧。
从11年初现今,一直在在学习java相关的知识。其中也走了不少弯路。按自己的积累,给出提主一个自其实合理不且有是有深度的学习路线。确切分下面几个阶段吧。
1.首先应尽可能的打牢基础的数据结构和简单的算法基础。
也可以去飞快的学习一些简单的银色系统,来不满足软件学习的兴趣和初期成就感。但,要先回过头,一遍的培养数据结构基础和简单点算法。类似于这种书就可以不。
2.熟练不使用Java类库和java第三方工具框架。
学使用java的语法,接触明白Java语法设计什么的逻辑。非常熟练手中掌握jdk程序库本身,以及各种第三方类库工具包和第三方框架的简单点使用。这里自学的同时,推荐一下看看吧《设计模式》,《代码整洁之道》,《spring源码解读》,《Spring揭秘》等这一类的书集。
3.理解自学jdk类库本身的应用源码实现和通吃第三方框架的源码和架构设计。
例如jdk本身的数据结构二叉树,红黑树,treemap,以及异步运行包的unsafe,同步阻塞队列,call-future等等包源码,以及线程基础类的实现,各个类库设计什么的结构和设计模式。弄懂第三方框架的设计思想,理解怎么学习第三方框架的核心源码。
当然了,这里面可能会牵涉到其他的事务,分布式协议等,这里不再展开攻击。这个过程并非一朝一夕,很可能不需要大量的时间和技术感悟。当然,《设计模式》,《代码整洁之道》,《spring源码解读与设计详析》,《Spring揭秘》等等这一大类书,在这个过程这个可以解释大差不差了。
4.理解jdk,jre即jvm原理和实现方法。
这里我推荐看下王秀娥的《实战java虚拟机》,里面回答都很偏实操。容易上手理解。
必须,可以从jdk自带的工具学习来何练起。
比如:jstat,jmap,jstack,jps,jdb.......甚至于另外就可以不窥视运行期间换算内存数据的HSDB。其实,才是学习明确的,我们只要再理解具体方法的几个命令,并明白了其代表上帝的意义再试一下。要知道,第三方监控工具,除开jdk本身也需要提供了3个可视化的监控。
主要,理解jvm的运行读取原理,弄明白class文件结构。
这个过程我们也可以的力量之前会得用监控工具,理解jvm运行程序的基本原理。是可以可以参考官方各个版本的jvm标准,学习搞懂class文件。诸位也可以使用如classpy等工具,方便我们再阅读class文件。也可以试试意见class字节码级别的隐式调试工具。哪怕,是可以尝试用用jvm汇编编码工具。
这一次,理解jvm的垃圾回收机制发展历史和各个主流垃圾回收器的工作原理。
这个过程反正太古怪。垃圾回收器有各种串行,左行,新声代/swap和老年代,包括回收警戒线,large触发条件,各种个样的基本参数和不怎摸是用超参数,和G1的H区,ZGC等等。。。还好的是,GC并都属于jvm官方规范的一部分。
接着,试着做一些jvm的实践和实战,
诸如,jvm比较普遍的故障排查和故障学习总结,性能调优,热加载,class字节码的动态操作,asm等。
到最后,这个可以试图基于自己的jvm。(其实这个步骤,对很多同学来说并非必须了)
这里我推荐几本书,确实是彻底搞明白jvm国家规范的学习路径。建议自己利用垃圾回收器。
周老师的《深入理解Java虚拟机》。
接下来的是《深入嵌入式java虚拟机》和配套源码。这个cldc的jvm源码只有1M多。目前在oracle的官网上,依然这个可以可以下载。是一个设计相当不精简的jvm实现。
接下来的,这个可以去阅读《自己动手写java 虚拟机》。这本书的jvm利用是采用go语言编译程序。当然了其中也有很多设计并不是什么非常合理。但基本都遵循什么了jvm规范。
这时候就这个可以去看下github上各种jvm的闭源实现了。有go,scalajvm,javainjava,ajvm,python-jvm,lua,各个版本各个相同的jvm实现。
不过,这些利用都只不过是基本原理。
后面推荐你自己去看《实战hotspot》豹子书,查哈高级语言虚拟机的圈子。
当然,垃圾回收的书籍也很少,这里我还是我推荐给你垃圾回收的很经典书《The Garbage Collection Cookbook》。虽然对新的垃圾回收算法有兴趣,是可以去知乎搜索相关的论文和GC算法开源利用的demo。
5.其实,我的建议只不过是对Java本身。
完全要至少几乎才能学好java生态,软件工程,计算机网络,大数据基础知识,mahuot,sparklib,分布式搜索架构,各种消息中间件,缓存中间件,数据库,DNS/CDN。。。。。这些也是做互联网应用,无法躲避的。
不能建议您,通用知识熟练的掌握,钻研方向专精,去相关生态知道一点。
由于提问是因为java本身。我就继续展开攻击说其他具体方向了。描述的是大的技术方向,并没有其他答主这样,详细去商讨语法糖这种级别。只希望对提主有了帮助。
有任何问题,记得关注回复,与我讨论。谢谢了。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。