Обычно под Апачем я использую для ряда своих сайтов htaccess с обрезанием расширения файлов (file.*) и редиректом с index.* на слеш (или без), то тут перешли фронтом на nginx/1.14.1 (PHP FastCGI) и у меня не получается сконвертировать конфиг, пользовался разными онлайн-конверторами, ниже выкладываю конф от самого известного, вроде всё правильно, но либо не работает обрезка расширений htm-файлов, либо валится сервер. Для меня важны только строчки с с перезаписью адресов. В чём ошибка?
# htaccess configuration
AddDefaultCharset UTF-8
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_URI} /index.htm
RewriteRule ^(.*)$ http://site.ru/ [R=301,L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^.]+)\.htm\ HTTP
RewriteRule ^([^.]+)\.htm$ http://site.ru/$1 [R=301,L]
RewriteCond %{REQUEST_URI} !(\.[^./]+)$
RewriteCond %{REQUEST_fileNAME} !-d
RewriteCond %{REQUEST_fileNAME} !-f
RewriteRule (.*) /$1.htm [L]
AddType application/x-httpd-php .html .htm
# nginx configuration
charset utf-8;
location ~ (\.[^./]+)$ {
}
location / {
rewrite /index.htm http://site.ru/ redirect;
rewrite ^/([^.]+)\.htm$ http://site.ru/$1 redirect;
if (!-e $request_filename){
rewrite ^(.*)$ /$1.htm break;
}
}
location ~ \.(html|htm)$ {
if (!-e $document_root$document_uri){return 404;}
fastcgi_pass localhost:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}