`

nginx的url rewrite配置的小错误

 
阅读更多

   [文章作者:狂奔的鹿(陆松林) 本文版本: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规则

    总的来说,配置Nginx的rewrite规则是提升Web应用性能和用户体验的关键步骤,需要理解正则表达式和Nginx的配置语法,才能正确有效地实现URL重写。在LNMP环境中,根据实际的部署类型选择合适的配置文件,并确保规则的...

    Nginx关于Rewrite执行顺序详解.docx

    如果一个URL被重写后再次匹配到同一个location块,且这个location块还有Rewrite规则,那么Nginx会在达到设置的最大循环次数(默认为10)时停止重写,并返回500 Internal Server Error错误。 四、使用技巧与注意事项...

    Nginx完整配置说明

    Nginx完整配置说明 Nginx是当前最流行的Web服务器软件之一,常用于搭建Web服务器、反向代理服务器、负载均衡器等。下面是Nginx的完整配置说明,涵盖基本配置、反向代理、FastCGI等方面的知识点。 一、基本配置 在...

    nginx rewrite常用示例

    通过上述示例,我们可以看到 Nginx Rewrite 功能的强大之处在于能够灵活地处理各种复杂的 URL 重定向场景。无论是简单的 URL 重定向、基于 IP 的重定向还是复杂的基于 URI 的重定向,Nginx 都提供了丰富的工具和选项...

    nginx之rewrite

    Nginx中的rewrite模块是一个非常实用的功能,它允许用户在服务器中动态地重写URL,实现URL的灵活处理,包括URL重定向和内部跳转等操作。rewrite规则在nginx的配置文件中定义,通常在server、location和if指令块中...

    Nginx.conf配置安全优化

    Rewrites 是 Nginx 中的一种配置指令,用于将某些 URL 重定向到其他 URL。例如,下面的配置将所有非 www.*.com 的访问重定向到 http://www.*.com/: server_name web90.*.com; if ($host = "web90.*.com") { ...

    nginx的各项详细配置-超多注释

    本篇文章将详细介绍Nginx的各项配置,并结合提供的"nginx.conf"配置文件和"nginx.txt"说明文件,深入解析Nginx的配置语法和应用场景。** ### 1. Nginx基本结构 Nginx的配置文件主要由多个块组成,包括全局块、...

    Nginx下支持Thinkphp URL Rewrite的配置示例

    总结来说,要在Nginx中支持ThinkPHP的URL Rewrite,你需要理解Nginx的配置语法,特别是`rewrite`规则和`location`块的用法,以及如何配置PHP处理。这个配置示例提供了一个基本的模板,但实际部署时,你可能还需要...

    Ubuntu下Nginx配置ThinkPHP的Pathinfo和URl Rewrite模式

    Ubuntu下Nginx配置ThinkPHP的Pathinfo和URL Rewrite模式知识点: 1. Nginx与Ubuntu的关系:Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。Ubuntu是一种以Linux为基础的操作系统,通常...

    Nginx+Tomcat配置.pdf

    3.rewrite:Nginx 的 rewrite 模块可以实现 URL 重写,实现友好的 URL。 4. 代理服务器:Nginx 还可以作为 IMAP/POP3/SMTP 代理服务器。 Nginx 的安装和配置: 1. 安装 Nginx:下载 Nginx 的源代码,解压缩并编译...

    nginx.conf配置详细说明

    《Nginx.conf配置详解》 Nginx是一款高性能、轻量级的Web服务器和反向代理服务器,因其高效稳定和灵活的配置而备受青睐。本文将深入解析Nginx的核心配置文件`nginx.conf`,帮助读者理解其背后的运行机制和配置选项...

    详解nginx rewrite和根据url参数location

    **Nginx Rewrite 规则详解** `Nginx` 的 `rewrite` 模块用于重写...通过理解 `Nginx` 的 `rewrite` 和 `location` 配置,可以更灵活地控制请求处理,实现 URL 重写、分发、重定向等功能,从而优化网站架构和用户体验。

    nginx基础配置.rar

    总结,Nginx的基础配置涵盖了服务器监听、虚拟主机、URL处理、反向代理等多个方面。通过学习和实践,你可以构建出满足需求的Web服务架构,有效提升网站的稳定性和性能。现在,你可以根据提供的视频教程,结合本文的...

    Nginx安装和配置手册

    - URL重写:利用`rewrite`指令实现URL的动态转换。 - GZIP压缩:开启GZIP压缩以减小传输数据量。 - 日志管理:自定义日志格式和位置,便于分析和监控。 通过深入理解Nginx的配置结构和指令,你可以根据需求定制...

    nginx源码包(nginx+pcre+openssl+zlib)

    在 Nginx 中,PCRE 用于处理 URL 重写、访问控制和其他基于模式匹配的功能。版本 8.40 可能包含以下改进: 1. **新特性**:添加了新的正则表达式语法或功能。 2. **性能提升**:可能对匹配算法进行了优化,提高处理...

    nginx使用指南.pdf

    Nginx 的 Rewrite 模块可以实现 URL 重写和重定向。Rewrite 规则可以根据不同的条件来匹配 URL,并将其重写为新的 URL。 四. Nginx Redirect Nginx 的 Redirect 模块可以实现 URL 的永久重定向和临时重定向。...

    nginx相关配置文件

    8. **模块配置:** Nginx支持多种模块,如`ngx_http_rewrite_module`用于URL重写,`ngx_http_proxy_module`用于反向代理,`ngx_http_gzip_module`用于GZIP压缩等。每个模块都有自己的配置选项,可以在`http`、`...

Global site tag (gtag.js) - Google Analytics