Курсы обучения
+7 (351) 777-80-70
2024.07.08

Конвертация правил .htaccess для Nginx - Линейка решений INTEC: Universe

Конвертировать правила mod_rewrite для Apache в эквивалентные правила для Nginx можно следующим образом:

server {
    listen 80;
    server_name your_domain.com;

    root /path/to/your/document_root;

    location / {
        try_files $uri $uri/ @rewrites;
    }

    location @rewrites {
        rewrite ^/(.*)$ /bitrix/urlrewrite.php last;
    }

    location ~ /bitrix/urlrewrite.php$ {
        try_files $uri =404;
    }

    # Forward the HTTP Authorization header
    location / {
        proxy_pass http://backend;
        proxy_set_header Authorization $http_authorization;
    }
}

Объяснение:
  1. try_files $uri $uri/ @rewrites; — проверяет, существует ли запрашиваемый файл, символическая ссылка или каталог. Если ни одно из условий не выполняется, запрос перенаправляется на внутреннее местоположение @rewrites.
  2. location @rewrites — выполняет перенаправление всех запросов на bitrix/urlrewrite.php.
  3. location ~ /bitrix/urlrewrite.php$ — обрабатывает прямые запросы к bitrix/urlrewrite.php и возвращает 404 ошибку, если файл не существует.
  4. Для передачи заголовка HTTP Authorization используется proxy_set_header Authorization $http_authorization; в блоке location /.

Эти правила необходимо добавить в конфигурационный файл вашего Nginx сервера. Не забудьте заменить your_domain.com на ваш реальный домен и /path/to/your/document_root на путь к вашему корневому каталогу.


Наши решения