全球主机论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 338|回复: 0

nginx伪静态出现[emerg] directive “rewrite” is not terminated by “;”

[复制链接]
发表于 2015-12-12 20:28:10 | 显示全部楼层 |阅读模式

在按照discuz X3 SEO优化教程设置伪静态时,修改lnmp下伪静态规则后,在执行“/etc/init.d/nginx restart”命令时,出现[emerg] directive “rewrite” is not terminated by “;”错误。

经过分析,原来discuz X3系统生成的nginx伪静态规则的第4行中含有”{prevpage}“,其中的大括号影响了nginx对伪静态规则的判断,我们只需要将伪静态规则中含有大括号的部分使用双引号标识出来就能解决问题。

即将第4行代码

rewrite ^([^\.]*)/thread-([0-9]+)-([0-9]+)-1\.html$ $1/forum.php?mod=viewthread&tid=$2&extra=page%3D{prevpage}&page=$3 last;

改为

rewrite ^([^\.]*)/thread-([0-9]+)-([0-9]+)-1\.html$ "$1/forum.php?mod=viewthread&tid=$2&extra=page%3D{prevpage}&page=$3 last";

重启nginx后问题解决。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|小黑屋|全球服务器论坛

GMT+8, 2024-5-4 15:53 , Processed in 1.528802 second(s), 18 queries , File On.

Powered by Discuz! X3.5

Copyright © 2001-2024 Tencent Cloud.

快速回复 返回顶部 返回列表