CMS DataLife Engine - Система управления сайтами

Sign in to follow this  
Alex-GR

Правила Rewrite для Nginx

Recommended Posts

Добрый день всем форумчанам.

Вопрос родился из этой статьи https://dle-news.ru/tips/page,1,4,770-pravila-rewrite-dlya-podderzhki-chpu-na-serverax.html#comment

Celsoft по каким-то причинам не отвечает в комментах, возможно ответит здесь. Или ответят форумчане.

Есть общие правила для Апача, на указанной выше странице есть правила для Nginx. И они различаются.

Речь идет о DataLife Engine 13.3

Строка 20 главного файла .htaccess:

RewriteRule ^([0-9]+)-(.*).html$ index.php?newsid=$1&seourl=$2 [L]

Эта же, 18 строка, из файла nginx rewrite rules.txt:

rewrite "^/([0-9]+)-(.*).html(/?)+$" /index.php?newsid=$1&seourl=$2 last;

Различие - вот в этой части: (/?)+

Что она дает? Все перечисленные ниже ссылки для Nginx:

/razdel/1-nazvanie-stati.html
/razdel/1-nazvanie-stati.html/
/razdel/1-nazvanie-stati.html//
/razdel/1-nazvanie-stati.html///

Попадают под регулярку:

^/([0-9]+)-(.*).html(/?)+$

Для файла .htaccess этого "хвоста" нет.

Вопрос - зачем нужна часть (/?)+ для правил Nginx?

Этот хвост (/?)+ в регулярке используется по всему файлу nginx rewrite rules.txt - он нужен или нет везде?

Дальше. Последние строки .htaccess:

RewriteRule ^([^/]+).html$ index.php?do=static&page=$1&seourl=$1 [L]
RewriteRule ^page,([0-9]+),([^/]+).html$ index.php?do=static&page=$2&news_page=$1&seourl=$2 [L]
RewriteRule ^print:([^/]+).html$ index.php?mod=print&do=static&page=$1&seourl=$1 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+).html$ index.php?do=static&page=$1&seourl=$1 [L]

И эти же строки из nginx rewrite rules.txt:

        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;
}

if (!-f $request_filename) {
        rewrite "^/([^/]+).html$" /index.php?do=static&page=$1 last;
}

В них отсутствует &seourl=...

Вопрос - для Nginx правки seourl не работают или это ошибка?

Share this post


Link to post
Share on other sites
4 часа назад, Alex-GR сказал:

Celsoft по каким-то причинам не отвечает в комментах, возможно ответит здесь

Это сторонний модуль, находится в разделе сторонних модулей, который нам прислал обычный сторонний автор. Никакой официальной у него поддержки нет. Поэтому и спрашивать о нем у меня не имеет никакого смысла. Я занимаюсь только официальной технической поддержкой, а официальные минимальные требования опубликованы на странице https://dle-news.ru/request.html

Share this post


Link to post
Share on other sites
2 часа назад, celsoft сказал:

Это сторонний модуль, находится в разделе сторонних модулей, который нам прислал обычный сторонний автор. Никакой официальной у него поддержки нет. Поэтому и спрашивать о нем у меня не имеет никакого смысла. Я занимаюсь только официальной технической поддержкой, а официальные минимальные требования опубликованы на странице https://dle-news.ru/request.html

Если посмотреть комментарии в статье сторонних модулей https://dle-news.ru/tips/page,1,4,770-pravila-rewrite-dlya-podderzhki-chpu-na-serverax.html#comment

то там вы отвечали неоднократно. Что изменилось?

Могли бы и ответить - думаю, вам это не составит труда. Но на нет - и суда нет...

Share this post


Link to post
Share on other sites

@Alex-GR 

1. Не нужна приставка (/?)+, это ошибка, только в некоторых правилах: категории, доп поля, теги, каталог, последние новости, юзеры.

2. seourl= нужен для опции обработки неверных чпу статических страниц. Так что да, это тоже как бы ошибка.

  • Upvote 1

Share this post


Link to post
Share on other sites
11 часов назад, Alex-GR сказал:

Если посмотреть комментарии в статье сторонних модулей https://dle-news.ru/tips/page,1,4,770-pravila-rewrite-dlya-podderzhki-chpu-na-serverax.html#comment

то там вы отвечали неоднократно. Что изменилось?

Я даю только комментарии относительно того есть изменения или нет. Но я их даю только основываясь на том, были ли изменения в .htaccess если их не было, то и в этих правилах изменений делать не нужно. Вот и все. А анализов самих правил я не проводил.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this