【问题标题】:Convert lighttpd rewrite rule to nginx将 lighttpd 重写规则转换为 nginx
【发布时间】:2012-07-22 06:41:46
【问题描述】:

我有以下简单的lighttpd重写规则:

$HTTP["host"] =~ "^(app\.mydomain\.com)$" {
    url.rewrite-once = (
            "^[^.]*$" => "controller.php/$1"
    )
}

我正在尝试将此规则移植到 nginx 并具有以下内容:

server {
  listen 80;

  server_name app.mydomain.com;

  if ($host = 'app.mydomain.com') {
    rewrite ^[^.]*$ controller.php/$1 last;
  }

  root /srv/www/domains/app.mydomain.com;

  index index.php;

  access_log /var/log/nginx/domains/app.mydomain.com/access.log;
  error_log /var/log/nginx/domains/app.mydomain.com/error.log;

  include /etc/nginx/excludes.conf;
  include /etc/nginx/php.conf;
  include /etc/nginx/expires.conf;
}

问题是nginx的重写规则没有正常工作?知道我做错了什么吗?谢谢。

【问题讨论】:

    标签: mod-rewrite nginx rewrite lighttpd


    【解决方案1】:

    controller.php 前面需要一个斜杠,并且你可能不需要 if 块来重写,因为它是虚拟主机的服务器名。

    rewrite ^[^.]*$ /controller.php/$1 last;
    

    【讨论】:

      猜你喜欢
      • 2018-03-28
      • 1970-01-01
      • 2014-06-30
      • 2016-08-09
      • 2016-06-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多