从 apache 迁移,需要一些重写规则方面的帮助

从 apache 迁移,需要一些重写规则方面的帮助

我需要一些帮助来将一些 apache 重写规则转换为 nginx,

这是 Apache 版本:

<Location ^/mywebapp>
  Order Deny,Allow
  Deny from all
  Allow from 127.0.0.1
  Allow from 192.168.0.0/16
  Allow from 10.10.0.0/16
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_URI} !app_dev\.php/.*
  RewriteCond %{REQUEST_URI} !app\.php$
  RewriteRule (.*) app.php [QSA,L]
</Location>

这是我在 nginx 中拥有的:

location ~ ^/mywebapp {
  allow 127.0.0.1;
  allow 192.168.0.0/16;
  allow 10.10.0.0/16;
  deny all;

  location ~ app_dev\.php/.* { }
  location ~ app\.php$ { }
  if (!-e $request_filename){
    rewrite ^(.*)$ app.php break;
  }
}

它没有按预期工作。有人能指出我错在哪里吗?

答案1

您可能应该能够用以下方法替换整个重写位(即从 app_dev 位置开始)

try_files $uri app.php$is_args$args

应该没问题。

相关内容