Главная страница / Советы / Правила Rewrite для ЧПУ на серверах под управлением Nginx
май 14 2018

Правила Rewrite для ЧПУ на серверах под управлением Nginx

Дорогие друзья,

Как известно сервер под управлением Apache не является оптимальным решением для создания высокопосещаемых проектов, и по мере роста посетителей сайта, потребление памяти сервером также растет в геометрической прогрессии. Поэтому при оптимизации серверного ПО очень часто прибегают к установке связки из легкого кеширующего сервера Nginx как фронтсервера и Apache как бэксервера. Данная связка позволяет существенно сократить расход памяти и увеличить быстродействие работы сервера. Однако существует еще более производительное решение, и это установка сервера Nginx как единственного standalone сервера, при этом Apache полностью убирается из системы, что позволяет добиться еще большей производительности. Единственной проблемой при работе с DLE такой системы, это несовместимость стандартных правил ЧПУ в файле .htaccess, которые прописаны для Apache. Поэтому если вы решите ставить Nginx как отдельный единственный сервер, мы предлагаем вам скачать правила написанные для Nginx.

Правила предназначены для версии: DataLife Engine 13.3.

Внимание! Просмотр данной информации доступен только пользователям имеющим лицензию на скрипт. Если вы уже приобретали скрипт, то вам необходимо зайти на сайт под своим клиентским аккаунтом.

Комментарии

xoxmalv

xoxmalv

13 октября 2018 16:18 Клиенты
0
celsoft,
Спасибо! Проблема была тут:

if ($request_uri ~ "^(.*)index\.(?:php|html)$") {
return 301 $1;
}


Не добавил знак $ чтобы только index.php без аргументов редиректился ;)
celsoft

celsoft

13 октября 2018 16:23 Администраторы
0
Цитата: xoxmalv
celsoft,
Спасибо! Проблема была тут:

if ($request_uri ~ "^(.*)index\.(?:php|html)$") {
return 301 $1;
}


Не добавил знак $ чтобы только index.php без аргументов редиректился ;)

Это правило не нужно вообще. DLE использует канонические ссылки. Редиректить ничего не нужно. А это правило вообще по сути вредно, например вы не сможете вести ту же статистику от разных сервисов, которые зачастую передают свои доп. параметры в URL для этого
Crashlabs

Crashlabs

6 марта 2019 08:15 Клиенты
0
Актуальны ли правила для DLE 13.2? Или последняя версия не отличается от предыдущей?
celsoft

celsoft

6 марта 2019 11:01 Администраторы
0
Цитата: Crashlabs
Актуальны ли правила для DLE 13.2? Или последняя версия не отличается от предыдущей?

Эти правила для версии 13.2
jameskinooliver

jameskinooliver

18 апреля 2019 21:54 Клиенты
0
а как закрыть папки открытые для записи 777 , чтобы не загрузили ничего лишнего

/engine/data
/engine/cache

Вот так пойдет?

location /engine/cache/ {
deny all;
}

location /engine/data/ {
deny all;
}

location /engine/data/emoticons/ {
allow all;
}

Или нужно запретить запуск php?
И запрет не получится поставить, в папке дата есть php скрипты

celsoft,
То есть на дле 13.2 на nginx не нужны эти правила?

location /uploads/ {
location ~\.(php)$ {
return 403;
}
}
location /backup/ {
location ~\.(php)$ {
return 403;
}
}
location /uploads/fotos/ {
location ~\.(php)$ {
return 403;
}
}
location /templates/ {
location ~\.(php)$ {
return 403;
}
}
location /language/ {
location ~\.(php)$ {
return 403;
}
}
celsoft

celsoft

19 апреля 2019 00:26 Администраторы
0
Цитата: jameskinooliver
а как закрыть папки открытые для записи 777 , чтобы не загрузили ничего лишнего

Чтобы не загрузили ничего лишнего защищают скрипты, а не настройки nginx. Потому как загружают также через скрипты.

Цитата: jameskinooliver
То есть на дле 13.2 на nginx не нужны эти правила?

Они ни на какой версии не нужны. DLE не нуждается в этих правилах. И защиты всегда нужно делать на уровне ПО, а не на уровне настроек папок.
klumba

klumba

5 октября 2019 15:09 Клиенты
0
Для 13.3 изменения есть ?
celsoft

celsoft

5 октября 2019 19:05 Администраторы
1
Цитата: klumba
Для 13.3 изменения есть ?

Нет
Alex-GR

Alex-GR

8 октября 2019 08:33 Клиенты
0
celsoft, почему в файле .htaccess используются директивы:
rewrite "^/page,([0-9]+),([^/]+).html$" /index.php?do=static&page=$2&news_page=$1&seourl=$2 last;
rewrite "^/print:([^/]+).html$" /index.php?mod=print&do=static&page=$1&seourl=$1 last;
RewriteRule ^([^/]+).html$ index.php?do=static&page=$1&seourl=$1 [L]
а для Nginx в этих директивах отсутствует &seourl=$...:
rewrite "^/page,([0-9]+),([^/]+).html$" /index.php?do=static&page=$2&news_page=$1 last;
rewrite "^/print:([^/]+).html$" /index.php?mod=print&do=static&page=$1 last;
rewrite "^/([^/]+).html$" /index.php?do=static&page=$1 last;
Alex-GR

Alex-GR

9 октября 2019 19:57 Клиенты
0
Цитата: celsoft
Нет

Я так и не получил ответ на свой вопрос...

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
Календарь
«    Декабрь 2019    »
ПнВтСрЧтПтСбВс
 1
2345678
9101112131415
16171819202122
23242526272829
3031 
Опрос на сайте
Совершаете ли вы покупки в интернет?

Популярные новости
Архив новостей
Декабрь 2019 (1)
Сентябрь 2019 (2)
Май 2019 (3)
Апрель 2019 (1)
Март 2019 (3)
Февраль 2019 (2)