Правила Nginx для MSE-Script 3.0

n0n4m3

Эксперт
Сообщения
321
Реакции
81
Выложу правила на Nginx для MSE-Script 3.0 - CMS для музыкального сайта
NGINX:
rewrite ^/pages/(.*)$ /page/$1 permanent;
if ($http_host ~* "^www.(.*)$"){
set $rule_1 1$rule_1;
set $bref_1 $1;
}
if ($rule_1 = "1"){
rewrite ^/(.*)$ http://$bref_1/$1 permanent;
}
if (!-f $request_filename){
set $rule_2 1$rule_2;
}
if (!-d $request_filename){
set $rule_2 2$rule_2;
}
if ($rule_2 = "21"){
rewrite /.* /index.php last;
}
rewrite ^/admin/api/(.*) /adminko/?act=api&api=$1 last;
 

Coilfenix

Ветеран
Сообщения
84
Реакции
30
Не советую использовать данные правила. Они крайне криво прописаны, нарушая все рекомендации документации nginx
 

n0n4m3

Эксперт
Сообщения
321
Реакции
81
@Coilfenix, я читал тему где то что вы не могли написать правила на Nginx!
Причем тут документация? - или вы хотите скачать что вы за 1 месяц изучили nginx на столько хорошо?

Писал данный конфиг для одного из пользоватилей
NGINX:
if ($http_host ~* "^www.(.*)$"){
set $rule_2 1$rule_2;
set $bref_1 $1;
}

if ($rule_2 = "1"){
rewrite ^/(.*)$ http://$bref_1/$1 permanent;
}

if (!-f $request_filename){
set $rule_3 1$rule_3;
}

if (!-d $request_filename){
set $rule_3 2$rule_3;
}

if ($rule_3 = "21"){
rewrite /.* /index.php last;
}

rewrite ^/pages/(.*)$ /page/$1 permanent;
rewrite ^/admin/api/(.*) /adminko/?act=api&api=$1 last;
rewrite ^/sitemap.xml$ /sitemap.xml last;
 

Coilfenix

Ветеран
Сообщения
84
Реакции
30
@n0n4m3, да, была тема, решил почитать на досуге, и изучил. Или вы думаете нужно третье высшее образование, чтобы выучить правильность написания реврайтов?:D Ничего сложного в документации нет, все подробно уже давным давно расписано. И смею предположить, что вы не сами писали данные реврайты, а воспользовались банальным конвертером, типо такого https://winginx.com/ru/htaccess

Для чего вам такая сложная и кривая конструкция из if, если в документации четко и ясно написано, крайне не рекомендуется использовать if вообще.
Понимаете вообще значение данных реврайтов?) Например, скажите мне, что делает rewrite ^/sitemap.xml$ /sitemap.xml last; или rewrite ^/admin/api/(.*) /adminko/?act=api&api=$1 last;
 

Coilfenix

Ветеран
Сообщения
84
Реакции
30
Так каким конвертером вы воспользовались?) И поймите, мне в принципе все равно, кто решит использовать данные реврайты, только вот работоспособность в дальнейшем будет хромать, хочу заметить, именно работоспособность, а не исправность, вы же различаете данные понятия? Да и дыры открываются некоторые, о которых вы явно не знаете, потому что не читали, а просто сделали ctrl+c - ctrl+v
 

n0n4m3

Эксперт
Сообщения
321
Реакции
81
@Coilfenix, А что стоит переписать правила с apache на nginx есть все указатели https://nginx.org/ru/docs/ и да с nginx работаю уже с 2016 года.
И сайты примерно с 2016 года стоят на nginx и не думаю что вы за 1 месяц изучили nginx.
Но умничать не буду возможно у вас есть мега способности или вы мгновенно читаете документацию - хотя по своему опыту знаю что не все так просто.
 

Coilfenix

Ветеран
Сообщения
84
Реакции
30
@Coilfenix, А что стоит переписать правила с apache на nginx есть все указатели https://nginx.org/ru/docs/ и да с nginx работаю уже с 2016 года.
И сайты примерно с 2016 года стоят на nginx и не думаю что вы за 1 месяц изучили nginx.
Но умничать не буду возможно у вас есть мега способности или вы мгновенно читаете документацию - хотя по своему опыту знаю что не все так просто.
Я буду показывать магию сейчас, все что вы написали:
Код:
if (!-f $request_filename){
set $rule_3 1$rule_3;
}

if (!-d $request_filename){
set $rule_3 2$rule_3;
}

if ($rule_3 = "21"){
rewrite /.* /index.php last;
}

rewrite ^/pages/(.*)$ /page/$1 permanent;
rewrite ^/admin/api/(.*) /adminko/?act=api&api=$1 last;
rewrite ^/sitemap.xml$ /sitemap.xml last;
превращается в одну строчку
Код:
location / { try_files $uri $uri/ /index.php; }
А вот эту хрень, называемой 301 редирект:
Код:
if ($http_host ~* "^www.(.*)$"){
set $rule_2 1$rule_2;
set $bref_1 $1;
}

if ($rule_2 = "1"){
rewrite ^/(.*)$ http://$bref_1/$1 permanent;
}
Правильнее делать так:
Код:
server {
    listen 80;
    server_name www.example.com;
    return 301 http://example.com$request_uri;
}

server {
    listen 80;
    server_name example.com;
    # остальные настройки сервера
}
 

Coilfenix

Ветеран
Сообщения
84
Реакции
30
@n0n4m3, мне хватило месяц, чтобы изучить правильное написание реврайтов, а вам не хватило и двух лет на тоже самое. Я не считаю, что у меня мега способности, скорей всего проблема в вас)
 
Сверху