Измените файл Apache .htaccess для использования с Nginx

Я перевожу веб-сайт с сервера, на котором установлен веб-сервер Apache, на другой сервер, на котором работает веб-сервер Nginx, и я хотел преобразовать файлы.htaccess, проблема заключается не только в синтаксисе, но и в имени файла. это тоже ".htaccess" или как?

3 ответа

Решение

Вот инструмент, который я использую:

http://www.anilcetin.com/convert-apache-htaccess-to-nginx/

Это не на 100% точно, но это довольно хорошая база

Также вот ссылка на преобразование правил:

http://nginx.org/en/docs/http/converting_rewrite_rules.html

Это может немного помочь:

http://wiki.nginx.org/HttpRewriteModule

РЕДАКТИРОВАТЬ:

Имя файла должно быть nginx.conf

Nginx не поддерживает файлы .htaccess.

Но файлы.htaccess плохие. Это способ разместить части конфигурации apache везде в файловой системе и указать apache проверять файловую систему при каждом запросе, чтобы увидеть, если у вас нет какой-либо специальной конфигурации. Единственное реальное использование файла.htaccess - делегировать небольшую часть конфигурации пользователю, если вы являетесь хост-провайдером и хотите разрешить некоторую конфигурацию веб-сервера для ваших пользователей.

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

http://wiki.nginx.org/LikeApache-htaccess:

Вы не можете сделать это. Ты не должен. Если вам нужен.htaccess, вы, вероятно, делаете это неправильно.

Посмотрите здесь:

https://www.digitalocean.com/community/questions/configuring-multiple-domains-and-subdomains-dns-nginx-issues-abound

server {  
    server_name  domain1.com;  
    rewrite ^(.*) http://www.domain1.com$1 permanent;  
}  

server {  
    listen 80 default_server;  
    listen [::]:80 default_server ipv6only=on;  
    root /home/user/www/domain1;  
    index index.php index.html index.htm;  

    server_name www.domain1.com;  

    include hhvm.conf;      
} 
Другие вопросы по тегам