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

Htaccess на Nginx

У меня есть один вопрос. Как я могу использовать свой файл Htaccess на nginx?

Я видел что-то подобное: http://www.anilcetin.com/convert-apache-htaccess-to-nginx/

Но я не знаю, работает ли это, и где я должен вставить коды?

Может кому поможет было бы офигенно!

Приветствую Slaxxer

NGINX не поддерживает ничего вроде .htaccess (если я не ошибаюсь), поэтому вам нужно поместить правила в файл конфигурации NGINX, вероятно, на виртуальном хосте.

Виртуальный хост - это конкретная конфигурация для домена, в конфигурации NGINX она будет выглядеть так:

  server { # simple reverse-proxy
    listen       80;
    server_name  domain2.com www.domain2.com;
    access_log   logs/domain2.access.log  main;

    location / {
      proxy_pass      http://127.0.0.1:8080;
    }
  }

(Взято из образца конфигурации NGINX)
Таким образом, вы должны поместить преобразованные правила .htaccess в квадратные скобки location {} (эквивалентно Apache).
Чтобы дать полный пример, скажем, у меня есть несколько перезаписанных URL-адресов в моем файле .htaccess.

#Enable URL Rewriting
RewriteEngine on

#Rewrite some pages
RewriteRule ^page/([0-9a-zA-Z_-]+).html$ /pagehander.php?page=$1 [QSA]

Запустив через конвертер получаю

rewrite ^/page/([0-9a-zA-Z_-]+).html$ /pagehander.php?page=$1;

Поэтому я бы поместил это в конфигурацию моего сервера NGINX, например

  server { # simple reverse-proxy
    listen       80;
    server_name  domain2.com www.domain2.com;
    access_log   logs/domain2.access.log  main;

    location / {
rewrite ^/page/([0-9a-zA-Z_-]+).html$ /pagehander.php?page=$1;
      proxy_pass      http://127.0.0.1:8080;
    }
  }