【问题标题】:rewrite apache to nginx将apache重写为nginx
【发布时间】:2010-09-14 02:05:33
【问题描述】:

这是我第一次使用 nginx 重写, 谁能帮我把这些规则转换成 nginx sintax?

RewriteRule (economics|sport|gossip|aboutus)+$ index.php?section=$1
RewriteRule (register)+$ $1.php?%{QUERY_STRING}
RewriteCond %{QUERY_STRING} ^p
RewriteRule (economics|sport|gossip)/+$ articles.php?section=$1&%{QUERY_STRING}

谢谢

【问题讨论】:

    标签: nginx rewrite


    【解决方案1】:
    rewrite (economics|sport|gossip|aboutus)$ /index.php?section=$1 last;
    

    我不确定 + 在您的原始正则表达式中的用途。这四个字可以有一个以上吗?您是否尝试过仅匹配其中一个词(即问题是“或”部分)?为什么rewrite directive 使用“break”而不是“last”?

    rewrite (register)+$ $1.php last;
    

    同样,我不确定您要使用此正则表达式中的 + 来完成什么。你的意思是.+(即“一个或多个任意字符”)?如果是这样,$ 是多余的。正如您所写,它的意思是“一个或多个重复的字符串 'register' 结束请求字符串。”

    【讨论】:

    • 谢谢!我真的不确定:) 我几年前就这样做了。你能帮忙 p RewriteRule (economics|sport|gossip)/+$articles.php?section=$1&%{QUERY_STRING} 吗?
    【解决方案2】:

    nginx 中的重写语法并没有太大的不同。

    rewrite  ^/(.*)$  http://www.just1word.com/$1  permanent;
    

    这是从我放置的配置文件中获取的。也许它会为您指明正确的方向。

    【讨论】:

    • 我尝试重写 (economics|sport|gossip|aboutus)+$ index.php?section=$1 break;没有运气
    猜你喜欢
    • 2016-01-16
    • 2012-01-29
    • 1970-01-01
    • 1970-01-01
    • 2014-11-17
    • 1970-01-01
    • 2016-06-18
    • 2014-06-22
    • 2014-11-10
    相关资源
    最近更新 更多