Nginx的rewrite规则与Apache有一些区别,特地找来一些资料,学习一下Nginx的rewrite规则。
正则表达式匹配,其中:
~ 为区分大小写匹配
~* 为不区分大小写匹配
!~ 和 !~* 分别为区分大小写不匹配及不区分大小写不匹配
文件及目录匹配,其中:
-f 和 !-f 用来判断是否存在文件
-d 和 !-d 用来判断是否存在目录
-e 和 !-e 用来判断是否存在文件或目录
-x 和 !-x 用来判断文件是否可执行
专注WEB编程开发技术
Nginx的rewrite规则与Apache有一些区别,特地找来一些资料,学习一下Nginx的rewrite规则。
正则表达式匹配,其中:
~ 为区分大小写匹配
~* 为不区分大小写匹配
!~ 和 !~* 分别为区分大小写不匹配及不区分大小写不匹配
文件及目录匹配,其中:
-f 和 !-f 用来判断是否存在文件
-d 和 !-d 用来判断是否存在目录
-e 和 !-e 用来判断是否存在文件或目录
-x 和 !-x 用来判断文件是否可执行
最近在把很多应用从Apache转入Nginx下,遇到最棘手的问题莫过于两个平台下rewrite规则的重新调整,下面就拿WordPress为例,和大家分享一下WordPress在多站点模式下,如何配置Nginx中的rewrite规则。
我们在开启WordPress(版本:3.2.1)多站点模式的过程中,会提示我们将一段rewrite写入.htaccess文件中,如下:
在开发时,经常会用到Apache的rewrite功能,如果你的Apache已经安装配置好了,这时需要加载rewrite模块的话,可以按照如下方法进行:
首先进入包含mod_rewrite.c的目录,然后执行如下命令
# /usr/local/apache2/bin/apxs -c mod_rewrite.c
# /usr/local/apache2/bin/apxs -i -a -n mod_rewrite mod_rewrite.la
上面的命令执行完后,打开你的httpd.conf,检查rewrtie模块是否已经在配置文档里进行加载了,正常的话应该会看到下面的这行配置:
LoadModule rewrite_module modules/mod_rewrite.so
检查确认无误后,重启Apache服务即可。
最后:上述的方法是我个人在工作当中遇到的问题,仅凭印象记录下来和大家分享,如有遗漏的地方请大家提出:)