nginx使用rewrite报错的解决
目录
- 项目场景:
- 问题描述
- 原因分析:
- 解决方案:
项目场景:
今天编译安装nginx的时候想着要做rewrite功能,匆忙瞟了一眼编译文档就直接make&&make install了,然后再修改配置文件的时候一直报错,语法死活过不去。现在记录一下本次报错的情况。
问题描述
由于本人的英语不怎么好,看了一下help文档,一个without开头的和一个disable开头的,想都没想直接添加了without开头的模块,噩梦就此开始。
配置好文件的时候我依旧信心满满的./sbin/nginx -t 检查语法,嗯?报错了,意料之中,可能是那里配置写错了,可是当我检查了一遍又一遍的时候,开始慌了。
原因分析:
首先根据提示我们知道nginx无法解析rewrite,(未知的指令“rewrite”),我想着应该是模块没装,或者其依赖pcre、pcre-devel没装(大家排查的时候也可以看看这两个依赖)。然后我检查了一下依赖(图一)。确实好像没啥问题,该装的都装了。我知道肯定是编译或者依赖的问题,然后我就打开了百度。
解决方案:
紧接着找到了这么一句话,默认参数编译nginx就会支持rewrite的模块。然后我忽然想起来without是除什么之外,难不成我这个是把rewrite功能关掉了!然后我就直接编译安装,什么参数也没加,果然,successful!
呵呵!被自己蠢哭了,顺便分享一下我找到的一个关于nignx的编译的小知识。
在"./configure"配置中,"--with"表示启用模块,也就是说这些模块在编译时不会自动构建"--without"表示禁用模块,也就是说这些模块在编译时会自动构建,若你想Nginx轻量级运行,可以去除一些不必要的模块。
到此这篇关于nginx使用rewrite报错的解决的文章就介绍到这了,更多相关nginx rewrite报错内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
相关推荐
-
nginx rewrite 伪静态配置参数和使用例子
正则表达式匹配,其中: * ~ 为区分大小写匹配 * ~* 为不区分大小写匹配 * !~和!~*分别为区分大小写不匹配及不区分大小写不匹配 文件及目录匹配,其中: * -f和!-f用来判断是否存在文件 * -d和!-d用来判断是否存在目录 * -e和!-e用来判断是否存在文件或目录 * -x和!-x用来判断文件是否可执行 flag标记有: * last 相当于Apache里的[L]标记,表示完成rewrite * break 终止匹配, 不再匹配后面的规则 * redirect 返回302临时重
-
nginx rewrite 伪静态配置参数详细说明
正则表达式匹配,其中: * ~ 为区分大小写匹配 * ~* 为不区分大小写匹配 * !~和!~*分别为区分大小写不匹配及不区分大小写不匹配 文件及目录匹配,其中: * -f和!-f用来判断是否存在文件 * -d和!-d用来判断是否存在目录 * -e和!-e用来判断是否存在文件或目录 * -x和!-x用来判断文件是否可执行 flag标记有: * last 相当于Apache里的[L]标记,表示完成rewrite * break 终止匹配, 不再匹配后面的规则 * redirect 返回302临时重
-
Nginx rewrite正则匹配重写的方法示例
Nginx的rewrite功能支持正则匹配重写,即将URL地址临时或永久重新指向某个新的位置,类似于重定向.这个特性有利用当网站结构做出重大调整,如之前的网站mp3资源使用URL为www.site1.org/mp3进行访问,而现在服务器上mp3目录已经被使用music目录替换,那rewrite这个功能则能够轻松实现.其次如可以将site1.org强制调整到www.site1.org,反之亦可.这个指令位于ngx_http_rewrite_module模块.本文主要描述这个指令的用法并给出演示.
-
Nginx伪静态配置和常用Rewrite伪静态规则集锦
nginx里使用伪静态是直接在nginx.conf 中写规则的,并不需要像apache要开启写模块(mod_rewrite)才能进行伪静态. nginx只需要打开nginx.conf配置文件,在server里面写需要的规则即可. 复制代码 代码如下: server { listen 80; server_name bbs.jb51.net; index index.html index.htm index.php; root /home/www/bbs; error_page
-
nginx rewrite 实现URL跳转的方法
最近工作中常常要改nginx配置,学习了nginx中rewrite的用法 URL跳转 这里说的URL跳转就是用户在访问一个URL时将其跳转到另一个URL上. 常见的应用场景是让多个域名跳转到同一个URL上,(例如让旧域名跳转到新域名上) 将静态文件请求跳转到cdn上等 根据用户设备跳转到不同站点(pc版,wap版)等. URL跳转可以通过js在页面上设置的window.location实现 也可以通过php设置header来实现 当然也可以用nginx 的 rewrite功能实现 nginx r
-
Nginx服务器下使用rewrite重写url以实现伪静态的示例
经过网上查阅和测试,发现Nginx的Rewrite规则和Apache的Rewite规则差别不是很大,几乎可以直接使用.比如在Apache中这样写规则 rewrite ^/([0-9]{5}).html$ /viewthread.php?tid=$1 last; 而在Nginx中写成这样写是无法启动的,解决的办法是加上两个双引号: rewrite "^/([0-9]{5}).html$" /viewthread.php?tid=$1 last; 同时将RewriteRule为Rewrit
-
详解nginx配置location总结及rewrite规则写法
location正则写法 一个示例: location = / { # 精确匹配 / ,主机名后面不能带任何字符串 [ configuration A ] } location / { # 因为所有的地址都以 / 开头,所以这条规则将匹配到所有请求 # 但是正则和最长字符串会优先匹配 [ configuration B ] } location /documents/ { # 匹配任何以 /documents/ 开头的地址,匹配符合以后,还要继续往下搜索 # 只有后面的正则表达式没有匹配到时,这
-
nginx使用rewrite报错的解决
目录 项目场景: 问题描述 原因分析: 解决方案: 项目场景: 今天编译安装nginx的时候想着要做rewrite功能,匆忙瞟了一眼编译文档就直接make&&make install了,然后再修改配置文件的时候一直报错,语法死活过不去.现在记录一下本次报错的情况. 问题描述 由于本人的英语不怎么好,看了一下help文档,一个without开头的和一个disable开头的,想都没想直接添加了without开头的模块,噩梦就此开始. 配置好文件的时候我依旧信心满满的./sbin/nginx -
-
nginx 下安装配置 phpadmin报错的解决方法
如下所示: 系统版本:centos7.0 64位 NGINX版本:nginx version: nginx/1.9.8 PHP版本:PHP 7.0.0 (cli) (built: Dec 1 2015 17:53:27) ( NTS ) mysql版本:mysqld Ver 5.7.10 phpmyadmin版本:4.5.2-all-languages 部署完phpmyadmin,访问主页报错: Error during session start; please check your PH
-
Git发现git push origin master 报错的解决方法
git push origin master 报错的解决方法,分享给大家,具体如下: 错误提示如下 [root@linux1 php]# git push -u origin master To git@github.com:kangvcar/Results-Systems--PHP.git ! [rejected] master -> master (fetch first) error: failed to push some refs to 'git@github.com:kangvcar
-
VS2017添加EF的MVC控制器报错的解决方法
VS2017添加EF的MVC控制器报错的解决方法,供大家参考,具体内容如下 1. 错误描述:no database provider has been configured fot this DbContext. 此类错误是上下文的注册造成的.解决方式在DBContext中重写OnConfiguring方法去注入数据库连接. DbContext中: public static string ConnectionString { get; set; } protected override voi
-
Eclipse引入jquery报错如何解决
以下内容是小编给大家带来的关于Eclipse引入jquery报错如何解决的全部叙述,具体内容如下所示: 第一步: 去除eclipse的JS验证: 将windows->preference->Java Script->Validator->Errors/Warnings-> Enable Javascript Sematic validation前面的勾去掉; 第二步: 右键项目 -> properties -> Builders 去掉JavaScript Vali
-
VS2015使用scanf报错的解决方法
本文实例为大家分享了VS2015使用scanf报错的解决方法,供大家参考,具体内容如下 1.在程序最前面加: #define_CRT_SECURE_NO_DEPRECATE 2.在程序最前面加: #pragma warning(disable:4996) 3.把scanf改为scanf_s: 4.无需在程序最前面加那行代码,只需在新建项目时取消勾选"SDL检查"即可: 5.若项目已建立好,在项目属性里关闭SDL也行:我用的VS是中文版的 (1).我将"是"改为&qu
-
Ubuntu下开启php调试模式报错信息解决办法
Ubuntu下开启php调试模式报错信息解决办法 在Ubuntu下php的缺省设置是不显示错误信息的,如果程序出错会显示"无法处理此请求的错误提示",这在开发环境下非常不方便. 其实我们只要编辑下apache的配置文件就好 1.我的apache 配置文件目录是/etc/apache2/apache2.conf sudo vim /etc/apache2/apache2.conf 再最后加入以下两行 php_flag display_errors on php_value error_r
-
Android线程中设置控件的值提示报错的解决方法
本文实例讲述了Android线程中设置控件的值提示报错的解决方法.分享给大家供大家参考,具体如下: 在Android线程中设置控件的值一般会与Handler联合使用,如下: package com.yarin.android.Examples_04_15; import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.os.Message; import andro
-
spring cloud feign不支持@RequestBody+ RequestMethod.GET报错的解决方法
1.问题梳理: 异常:org.springframework.web.HttpRequestMethodNotSupportedException: Request method 'POST' not supported 很明显是最终feign执行http请求时把这个方法认定为POST,但feign client中又定义了RequestMethod.GET 或 @GetMapping,冲突导致报错 那么为什么feign会认为这个方法是post呢? 源码追踪: 1.我们从feignClient注解
-
基于php双引号中访问数组元素报错的解决方法
最近在做微信公众号开发,在一个发送图文接口中,需要把数组元素拼接在XML字符串中 foreach ($itemArr as $key => $value){ $items .= "<item> <Title><![CDATA[$value['title']]]></Title> <Description><![CDATA[[$value['description']]]></Description> <
随机推荐
- C#操作字符串方法总结实例代码
- jquery弹出框的用法示例(一)
- 用vbs实现的确定共享文件夹的本地路径?
- centos6.5 编译安装lamp以及相关错误的解决方法
- python中urllib模块用法实例详解
- JS弹出对话框返回值代码(asp.net后台)
- php中强制下载文件的代码(解决了IE下中文文件名乱码问题)
- Python模仿POST提交HTTP数据及使用Cookie值的方法
- CentOS 7 sshd 链接被拒绝问题解决办法
- CSS之自动换行
- jquery请求servlet实现ajax异步请求的示例
- 微信小程序中使用javascript 回调函数
- jquery判断单选按钮radio是否选中的方法
- jquery 页面滚动到指定DIV实现代码
- Java Builder Pattern建造者模式详解及实例
- Java编程之文件读写实例详解
- C#中结构体和字节数组转换实现
- Java实现字符串转换成可执行代码的方法
- python爬虫获取京东手机图片的图文教程
- python 梯度法求解函数极值的实例