[文章作者:狂奔的鹿(陆松林) 本文版本:v1.0 转载请注明原文链接:http://dynamiclu.iteye.com/]
近期在作一个nginx换apache的项目,涉及到url的rewrite, 关于两者的区别, 这边就不提了, google一下,到处都是。
值得一提的是:
apache里的RewriteCond 转化成nginx的配置时, 都说用if并OK;
若是:
apache:
RewriteCond %{QUERY_STRING} ^search_content=(.*)$
RewriteRule ^/search.jspa$ http://abc.domian.cn/search.jsp?search_content=%1 [L,NC,NE,R=301]
转化成nginx:
rewrite "^/search.jspa$" http://abc.domian.cn/search.jsp?search_content=$1 permanent;
如果是:
RewriteCond %{QUERY_STRING} ^id=(.*)$
RewriteRule ^/search.jspa$ http://abc.domian.cn/html_%1.html [L,NC,NE,R=301]
仔细看一下,还原成伪链接
方式1:
rewrite "^search.jspa$" http://istock.jrj.com.cn/html_$1.html permanent;
配置文件不报错,但始终无效。
换方式2:
if($query_string ~ ^id=(.*)$) {
set $id_tmp $1;
rewrite "^/remen/sortsearch.jspa$" http://abc.domian.cn/html_$id_tmp.html permanent;
}
报错如下图:
google了近一个小时,没发现是哪的错, 怀疑起nginx的全局变量$query_string, 添加到log_format里,日志能打印出来。
无意中,比较一下if的差别,才发现原来是"if("写错了,中间需要多一个空格,需要写成"if ("才成。
方式2的配置改成:
if ($query_string ~ ^id=(.*)$) {
set $id_tmp $1;
rewrite "^/remen/sortsearch.jspa$" http://abc.domian.cn/html_$id_tmp.html permanent;
}
OK, 终于通过了。 开发出身的人,if then else写多了,系统配置时很容易犯这些错误。
[文章作者:狂奔的鹿(陆松林) 本文版本:v1.0 转载请注明原文链接:http://dynamiclu.iteye.com/]
- 大小: 14.1 KB
分享到:
相关推荐
总的来说,配置Nginx的rewrite规则是提升Web应用性能和用户体验的关键步骤,需要理解正则表达式和Nginx的配置语法,才能正确有效地实现URL重写。在LNMP环境中,根据实际的部署类型选择合适的配置文件,并确保规则的...
如果一个URL被重写后再次匹配到同一个location块,且这个location块还有Rewrite规则,那么Nginx会在达到设置的最大循环次数(默认为10)时停止重写,并返回500 Internal Server Error错误。 四、使用技巧与注意事项...
Nginx完整配置说明 Nginx是当前最流行的Web服务器软件之一,常用于搭建Web服务器、反向代理服务器、负载均衡器等。下面是Nginx的完整配置说明,涵盖基本配置、反向代理、FastCGI等方面的知识点。 一、基本配置 在...
通过上述示例,我们可以看到 Nginx Rewrite 功能的强大之处在于能够灵活地处理各种复杂的 URL 重定向场景。无论是简单的 URL 重定向、基于 IP 的重定向还是复杂的基于 URI 的重定向,Nginx 都提供了丰富的工具和选项...
Nginx中的rewrite模块是一个非常实用的功能,它允许用户在服务器中动态地重写URL,实现URL的灵活处理,包括URL重定向和内部跳转等操作。rewrite规则在nginx的配置文件中定义,通常在server、location和if指令块中...
Rewrites 是 Nginx 中的一种配置指令,用于将某些 URL 重定向到其他 URL。例如,下面的配置将所有非 www.*.com 的访问重定向到 http://www.*.com/: server_name web90.*.com; if ($host = "web90.*.com") { ...
本篇文章将详细介绍Nginx的各项配置,并结合提供的"nginx.conf"配置文件和"nginx.txt"说明文件,深入解析Nginx的配置语法和应用场景。** ### 1. Nginx基本结构 Nginx的配置文件主要由多个块组成,包括全局块、...
总结来说,要在Nginx中支持ThinkPHP的URL Rewrite,你需要理解Nginx的配置语法,特别是`rewrite`规则和`location`块的用法,以及如何配置PHP处理。这个配置示例提供了一个基本的模板,但实际部署时,你可能还需要...
Ubuntu下Nginx配置ThinkPHP的Pathinfo和URL Rewrite模式知识点: 1. Nginx与Ubuntu的关系:Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。Ubuntu是一种以Linux为基础的操作系统,通常...
3.rewrite:Nginx 的 rewrite 模块可以实现 URL 重写,实现友好的 URL。 4. 代理服务器:Nginx 还可以作为 IMAP/POP3/SMTP 代理服务器。 Nginx 的安装和配置: 1. 安装 Nginx:下载 Nginx 的源代码,解压缩并编译...
《Nginx.conf配置详解》 Nginx是一款高性能、轻量级的Web服务器和反向代理服务器,因其高效稳定和灵活的配置而备受青睐。本文将深入解析Nginx的核心配置文件`nginx.conf`,帮助读者理解其背后的运行机制和配置选项...
**Nginx Rewrite 规则详解** `Nginx` 的 `rewrite` 模块用于重写...通过理解 `Nginx` 的 `rewrite` 和 `location` 配置,可以更灵活地控制请求处理,实现 URL 重写、分发、重定向等功能,从而优化网站架构和用户体验。
总结,Nginx的基础配置涵盖了服务器监听、虚拟主机、URL处理、反向代理等多个方面。通过学习和实践,你可以构建出满足需求的Web服务架构,有效提升网站的稳定性和性能。现在,你可以根据提供的视频教程,结合本文的...
- URL重写:利用`rewrite`指令实现URL的动态转换。 - GZIP压缩:开启GZIP压缩以减小传输数据量。 - 日志管理:自定义日志格式和位置,便于分析和监控。 通过深入理解Nginx的配置结构和指令,你可以根据需求定制...
在 Nginx 中,PCRE 用于处理 URL 重写、访问控制和其他基于模式匹配的功能。版本 8.40 可能包含以下改进: 1. **新特性**:添加了新的正则表达式语法或功能。 2. **性能提升**:可能对匹配算法进行了优化,提高处理...
Nginx 的 Rewrite 模块可以实现 URL 重写和重定向。Rewrite 规则可以根据不同的条件来匹配 URL,并将其重写为新的 URL。 四. Nginx Redirect Nginx 的 Redirect 模块可以实现 URL 的永久重定向和临时重定向。...
8. **模块配置:** Nginx支持多种模块,如`ngx_http_rewrite_module`用于URL重写,`ngx_http_proxy_module`用于反向代理,`ngx_http_gzip_module`用于GZIP压缩等。每个模块都有自己的配置选项,可以在`http`、`...