Конфиг Nginx для Cotonti
Если Вам нужно установить сайт на Cotonti на web-сервер Nginx без Apache. В этом случае у Вас не будет возможности обрабатывать файлы .htaccess, но это и не нужно.
Вы можете использовтаь приведенный ниже конфиг.
Предположим, что домен Вашего сайта your_domain.com, а /path/to/your/site/public_html - путь к корневой папке Вашего сайта.
# Редирект с www.your_domain.com на урл без www
# Это же можно сделать и для https:
server {
listen 80;
server_name www.your_domain.com;
return 301 $scheme://your_domain.com$request_uri;
}
server {
# HTTP Auth
# Нужна http авторизация?
#auth_basic "Hello, Admin, please login";
#auth_basic_user_file /path/to/your/site/my_site/.htpasswd;
# Domains
# Домен Вашего сайта
server_name your_domain.com;
# Ports
# Порты
# HTTP
listen 80;
# HTTPS
# listen 443 ssl;
# Logs
# Логи. Access лог не особо нужен.
# access_log /path/to/your/site/logs/access.log;
# Error log, по большому счету, можно включать только по необходимости
error_log /path/to/your/site/logs/error.log;
# Root
root /path/to/your/site/public_html;
index index.php;
# SSL
#ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
#ssl_ciphers HIGH:!RC4:!aNULL:!MD5:!kEDH;
#ssl_certificate /path/to/ssl/sertificate.crt;
#ssl_certificate_key /path/to/ssl/ssl/ertificate.key;
#ssl_session_cache shared:SSL:10m;
#ssl_session_timeout 10m;
# Сonvince user that we have no Git
# Скрываем присутсвие Git
location ~ /\.git {
return 404;
}
# Deny access to .htaccess files
location ~ /\.ht {
deny all;
}
# Specifically disable the execution of PHP files in any directory containing user uploads:
# Запрещаем исполнение php-скриптов в папках, куда пользователи могут загружать файлы
location ~ /datas/(users|avatars|defaultav|exflds|files|photos|thumbs) {
location ~ \.php$ {return 403;}
}
location /public {
location ~ \.php$ {return 403;}
}
# File protection
# Эти файлы пользователю читать ни к чему
location ~ \.(tpl|dat)$ {
#deny all;
return 404;
}
location / {
index index.php index.html index.htm;
# Language selector
# Выбор языка сайта
rewrite "^/(en|ru|de|nl)/(.*)" /$2?l=$1;
# Sitemap shortcut
# Ссылка на карту сайта (при включенном плагине Sitemap)
rewrite ^/sitemap\.xml$ /index.php?r=sitemap last;
# Admin area and message are special scripts
# Админка и некоторые специальные скрипты
rewrite "^/admin/([a-z0-9]+)" /admin.php?m=$1 last;
rewrite "^/(admin|login|message)(/|\?|$)" /$1.php last;
# System category has priority over /system folder
# Категория System. Да и пользователю нечено делать в папке "system"
rewrite "^/system/?$" /index.php?rwr=system last;
# All the rest goes through standard rewrite gateway
# Остальные урлы перезаписываем
try_files $uri $uri/ /index.php?rwr=$uri&$args;
# Если Ваш сайт умеет обрабатывать 404 ошибки
error_page 404 /404.html;
}
location ~ \.php$ {
# upstream name или soсket или IP:port
fastcgi_pass php_upstream;
fastcgi_index index.php;
# Если Вы используете chroot - то путь следует указывать относительно корня chroot
fastcgi_param SCRIPT_FILENAME /path_to_site_from_chroot/public_html$fastcgi_script_name;
include fastcgi_params;
# 2 строки ниже нужны при использовании chroot и путь следует указывать
# относительно корня chroot
# Иначе их можно опустить. Соотвествующие параметры должны быть в подключаемом
# файле fastcgi_params
fastcgi_param DOCUMENT_ROOT /path_to_site_from_chroot/public_html;
fastcgi_param PATH_TRANSLATED /path_to_site_from_chroot/public_html$fastcgi_script_name;
# Если Ваш сайт умеет обрабатывать 404 ошибки
error_page 404 /404.html;
}
}
Комментарии: