Конфигурация zcart nginx + преобразование htaccess - PullRequest
0 голосов
/ 18 декабря 2018

Пожалуйста, помогите мне преобразовать правила htaccess приложения zcart в конфигурацию nginx.Пожалуйста, смотрите ниже htaccess.

<IfModule mod_rewrite.c>

RewriteEngine On

# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [L,R=301]

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

# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

Спасибо

1 Ответ

0 голосов
/ 21 декабря 2018

Предполагая, что вы уже сконфигурировали свою часть FastCGI в конфигурации, давайте попробуем:

# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [L,R=301]

можно преобразовать в конфигурацию nginx как

location ~ ^(.+)/$ {
    if (!-d $request_filename) {
        return 301 $1;
    }
    # else this is a directory, will be processed via index file in this directory by default
}

или (тот же результат)

location ~ ^(.+)/$ {
    if (!-d $request_filename) {
        rewrite ^(.*)/$ $1 permanent;
    }
    # else this is a directory, will be processed via index file in this directory by default
}

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

будет обрабатываться одной директивой try_files в основном блоке location:

location / {
    try_files $uri $uri/ /index.php;
}

И, наконец,

# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

не требует никаких дополнительных настроек в nginx.conf, потому что переменная $_SERVER[HTTP_AUTHORIZATION] будет добавлена ​​в массив $_SERVER автоматически, когда установлен заголовок HTTP Authorization (если ваша конфигурация php-fpm правильная).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...