Мод переписать с apache на nginx

У меня проблемы с преобразованием htaccess с apache на nginx.

фактическое правило htaccess:

options +followsymlinks
RewriteEngine On
RewriteCond $1 !^(images|system|themes|css|js|flex|slider|rss|favicon\.ico|robots\.txt|index\.php) [NC]
RewriteRule ^(.*) /index.php?$1 [L]

этот набор правил используется в движке выражений 1.7

мое текущее решение:

    location / {
    index index.php;
    try_files $uri $uri/ @ee;
}
location @ee {
    rewrite ^(.*) /index.php?/$1 last;
}
location /index.php {
    include fastcgi_params;
    set $script     $uri;
    set $path_info  $uri;
    if ($args ~* "^(/.+)$") {
       set $path_info  $1;
    }
    fastcgi_pass fastcgi-upstream_${server_name};
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_param PATH_INFO $path_info;
}
location ~* \.php$ {
    include fastcgi_params;
    fastcgi_pass fastcgi-upstream_${server_name};
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_param PATH_INFO $fastcgi_script_name;
}

но это не отражало 100% то же самое, что в htaccess.

Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
0
0
48
1

Ответы 1

Вы можете использовать блок местоположения в Nginx. Это перенаправит весь ваш запрос на index.php.

location / {
  rewrite ^/(.*) /index.php?$1 break;
}

Другие вопросы по теме