Назад | Перейти на главную страницу

Конвертация правил Nginx

У меня есть эти правила htaccess:

<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
    Options -MultiViews
</IfModule>

RewriteEngine On

# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ /$1 [L,R=301]

# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]

и я использовал онлайн-конвертер, и это то, что он мне дал, однако он не работает, поэтому я не совсем уверен, что с ним не так.

location / {
rewrite ^/(.*)/$ /$1 redirect;
if (!-e $request_filename){
rewrite ^(.*)$ /index.php break;
}
}

заранее спасибо

В nginx вы не используете rewrite для передних контроллеров вместо этого используйте try_files. Ваша конфигурация должна выглядеть примерно так:

server {
    ...
    try_files $uri $uri/ /index.php;

    location ~ (.+)/$ {
        return 301 $scheme://$host$1;
    }
}