Предполагая, что вы уже сконфигурировали свою часть 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 правильная).