Помощь ЧПУ на nginx

Тема в разделе "DLE", создана пользователем Compazitor, 14 дек 2010.

Информация :
Актуальная версия DataLife Engine 11.3
( Final Release v.11.3 | Скачать DataLife Engine | Скачать 11.3 demo )
Нужно ли обновляться | Как обновиться | Изменения в шаблонах
> Нет русских символов <
[Приватная тема DLE (Все подробности в ЛС к модератору раздела)]

Версии 11.2 и ниже - уязвимы!

Локализации | F.A.Q. | Внешний вид
Правила раздела | Правила форума
Обсуждение хайда карается баном!
В каждом сообщении указывайте версию DLE, которого они касаются!
Модераторы: killoff
  1. Compazitor

    Compazitor Создатель

    Регистр.:
    29 сен 2008
    Сообщения:
    42
    Симпатии:
    3
    Здравстуйте.
    DLE 9.0. null
    На сервере установлен последний nginx 0.9.2

    Не работает ЧПУ. Заменил htacess на тот что для nginx. В итоге "404 Not Found"

    Облазил всё. нашел соответствующие тему и на нулледе. Ничего не понял. Может кто знает, что делать? )
     
  2. killoff

    killoff CD тихо, и не DVD меня ;)

    Moderator
    Регистр.:
    13 май 2008
    Сообщения:
    2.166
    Симпатии:
    796
    это что за тема где ничего не понял?... можно было бы сразу ссылку выложить! :-]
     
  3. alica

    alica

    Регистр.:
    28 июл 2008
    Сообщения:
    243
    Симпатии:
    76
    Заменять, зачем ? это нужно прописать в конфиге nginx для конкретного сайта.
     
  4. XeonN

    XeonN

    Регистр.:
    13 ноя 2006
    Сообщения:
    369
    Симпатии:
    150
    Та не работает htacess, надо прописывать правила реврайта непосредственно в конфиге виртуалхоста nginx.
     
  5. yavasilek

    yavasilek vasilek_gorbunok

    Регистр.:
    5 окт 2008
    Сообщения:
    1.178
    Симпатии:
    423
    вот рецепт от разработчика. юзаем поиск
    Перейти по ссылке
     
  6. Alex KGB

    Alex KGB

    Регистр.:
    28 сен 2009
    Сообщения:
    402
    Симпатии:
    75
    Подскажите, кто реально настраивал ЧПУ для ДЛЕ 9.5 на Nginx.
    Как это правильно осуществить?
    В гугл не посылать, только что оттуда, ничего работающего пока не нашел (обычно сабж выкладывают для версий ниже 9.4)
     
  7. yavasilek

    yavasilek vasilek_gorbunok

    Регистр.:
    5 окт 2008
    Сообщения:
    1.178
    Симпатии:
    423
  8. Alex KGB

    Alex KGB

    Регистр.:
    28 сен 2009
    Сообщения:
    402
    Симпатии:
    75
    Правила обновлены до версии DLE 9.4
    Но мне то нужно 9.5 ((
     
  9. afonya09

    afonya09

    Регистр.:
    31 янв 2009
    Сообщения:
    260
    Симпатии:
    18
    Нужно прописать в
    server {
    location / {
    index index.php;
    include /etc/nginx/dle.rewrite;
    }
    }


    PHP:
    # Редиректы
    rewrite ^/page/(.*)$ /index.php?cstart=$1 last;
     
    # Сам пост
    rewrite ^/([0-9]+)/([0-9]+)/([0-9]+)/page,([0-9]+),([0-9]+),(.*).html(/?)+$ /index.php?subaction=showfull&year=$1&month=$2&day=$3&news_page=$4&cstart=$5&news_name=$6 last;
    rewrite ^/([0-9]+)/([0-9]+)/([0-9]+)/page,([0-9]+),(.*).html(/?)+$ /index.php?subaction=showfull&year=$1&month=$2&day=$3&news_page=$4&news_name=$5 last;
    rewrite ^/([0-9]+)/([0-9]+)/([0-9]+)/print:page,([0-9]+),(.*).html(/?)+$ /engine/print.php?subaction=showfull&year=$1&month=$2&day=$3&news_page=$4&news_name=$5 last;
    rewrite ^/([0-9]+)/([0-9]+)/([0-9]+)/(.*).html(/?)+$ /index.php?subaction=showfull&year=$1&month=$2&day=$3&news_name=$4 last;
     
    rewrite ^/([^.]+)/page,([0-9]+),([0-9]+),([0-9]+)-(.*).html(/?)+$ /index.php?newsid=$4&news_page=$2&cstart=$3 last;
    rewrite ^/([^.]+)/page,([0-9]+),([0-9]+)-(.*).html(/?)+$ /index.php?newsid=$3&news_page=$2 last;
    rewrite ^/([^.]+)/print:page,([0-9]+),([0-9]+)-(.*).html(/?)+$ /engine/print.php?news_page=$2&newsid=$3 last;
    rewrite ^/([^.]+)/([0-9]+)-(.*).html(/?)+$ /index.php?newsid=$2 last;
     
    rewrite ^/page,([0-9]+),([0-9]+),([0-9]+)-(.*).html(/?)+$ /index.php?newsid=$3&news_page=$1&cstart=$2 last;
    rewrite ^/page,([0-9]+),([0-9]+)-(.*).html(/?)+$ /index.php?newsid=$2&news_page=$1 last;
    rewrite ^/print:page,([0-9]+),([0-9]+)-(.*).html(/?)+$ /engine/print.php?news_page=$1&newsid=$2 last;
    rewrite ^/([0-9]+)-(.*).html(/?)+$ /index.php?newsid=$1 last;
     
    # За день
    #rewrite ^/([0-9]+)/([0-9]+)/([0-9]+)(/?)+$ /index.php?year=$1&month=$2&day=$3 last;
    #rewrite ^/([0-9]+)/([0-9]+)/([0-9]+)/page/([0-9]+)(/?)+$ /index.php?year=$1&month=$2&day=$3&cstart=$4 last;
    # За весь месяц
    #rewrite ^/([0-9]+)/([0-9]+)(/?)+$ /index.php?year=$1&month=$2 last;
    #rewrite ^/([0-9]+)/([0-9]+)/page/([0-9]+)(/?)+$ /index.php?year=$1&month=$2&cstart=$3 last;
    # Вывод за весь год
    #rewrite ^/([0-9]+)(/?)+$ /index.php?year=$1 last;
    #rewrite ^/([0-9]+)/page/([0-9]+)(/?)+$ /index.php?year=$1&cstart=$2 last;
    # вывод отдельному тегу
    #rewrite ^/tags/([^/]*)(/?)+$ /index.php?do=tags&tag=$1 last;
    #rewrite ^/tags/([^/]*)/page/([0-9]+)(/?)+$ /index.php?do=tags&tag=$1&cstart=$2 last;
    # вывод для отдельного юзера
    rewrite ^/user/([^/]*)/rss.xml$ /engine/rss.php?subaction=allnews&user=$1 last;
    rewrite ^/user/([^/]*)(/?)+$ /index.php?subaction=userinfo&user=$1 last;
    rewrite ^/user/([^/]*)/page/([0-9]+)(/?)+$ /index.php?subaction=userinfo&user=$1&cstart=$2 last;
    rewrite ^/user/([^/]*)/news(/?)+$ /index.php?subaction=allnews&user=$1 last;
    rewrite ^/user/([^/]*)/news/page/([0-9]+)(/?)+$ /index.php?subaction=allnews&user=$1&cstart=$2 last;
    rewrite ^/user/([^/]*)/news/rss.xml(/?)+$ /engine/rss.php?subaction=allnews&user=$1 last;
    # вывод всех последних новостей
    rewrite ^/lastnews/(/?)+$ /index.php?do=lastnews last;
    rewrite ^/lastnews/page/([0-9]+)(/?)+$ /index.php?do=lastnews&cstart=$1 last;
    # вывод в виде каталога
    rewrite ^/catalog/([^/]*)(/?)+$ /index.php?catalog=$1 last;
    rewrite ^/catalog/([^/]*)/page/([0-9]+)(/?)+$ /index.php?catalog=$1&cstart=$2 last;
    # вывод непрочитанных статей
    rewrite ^/newposts(/?)+$ /index.php?subaction=newposts last;
    rewrite ^/newposts/page/([0-9]+)(/?)+$ /index.php?subaction=newposts&cstart=$1 last;
    # Статистические страницы
    rewrite ^/static/(.*).html(/?)+$ /index.php?do=static&page=$1 last;
    # вывод избранных статей
    rewrite ^/favorites(/?)+$ /index.php?do=favorites last;
    rewrite ^/favorites/page/([0-9]+)(/?)+$ /index.php?do=favorites&cstart=$1 last;
     
    rewrite ^/rules.html$ /index.php?do=rules last;
    #rewrite ^/statistics.html$ /index.php?do=stats last;
    rewrite ^/addnews.html$ /index.php?do=addnews last;
    rewrite ^/rss.xml$ /engine/rss.php last;
    rewrite ^/sitemap.xml$ /uploads/sitemap.xml last;
     
    rewrite ^/category/([^.]+)/(.*).html(/?)+$ /index.php?subaction=showfull&news_name=$2 last;
    rewrite ^/category/([^.]+)/page/([0-9]+)(/?)+$ /index.php?do=cat&category=$1&cstart=$2 last;
    rewrite ^/category/([^.]+)(/?)+$ /index.php?do=cat&category=$1 last;
     
    if (!-
    d $request_filename) {
        
    rewrite ^/([^.]+)/page/([0-9]+)(/?)+$ /index.php?do=cat&category=$1&cstart=$2 last;
        
    rewrite ^/([^.]+)/?$ /index.php?do=cat&category=$1 last;
    }
     
    if (!-
    f $request_filename) {
        
    rewrite ^/([^<]+)/rss.xml$ /engine/rss.php?do=cat&category=$1 last;
        
    rewrite ^/page,([0-9]+),([^/]+).html$ /index.php?do=static&page=$2&news_page=$1 last;
        
    rewrite ^/print:([^/]+).html$ /engine/print.php?do=static&page=$1 last;
    }
     
    if (!-
    f $request_filename) {
        
    rewrite ^/([^/]+).html$ /index.php?do=static&page=$1 last;
    }
     
    Alex KGB нравится это.
  10. Alex KGB

    Alex KGB

    Регистр.:
    28 сен 2009
    Сообщения:
    402
    Симпатии:
    75
    Код PHP я так понимаю /etc/nginx/dle.rewrite;
    Вроде бы работает, спасибо.
    Только вот почему у вас закоментированы строки?
    # За день
    #rewrite ^/([0-9]+)/([0-9]+)/([0-9]+)(/?)+$ /index.php?year=$1&month=$2&day=$3 last;
    #rewrite ^/([0-9]+)/([0-9]+)/([0-9]+)/page/([0-9]+)(/?)+$ /index.php?year=$1&month=$2&day=$3&cstart=$4 last;
    # За весь месяц
    #rewrite ^/([0-9]+)/([0-9]+)(/?)+$ /index.php?year=$1&month=$2 last;
    #rewrite ^/([0-9]+)/([0-9]+)/page/([0-9]+)(/?)+$ /index.php?year=$1&month=$2&cstart=$3 last;
    # Вывод за весь год
    #rewrite ^/([0-9]+)(/?)+$ /index.php?year=$1 last;
    #rewrite ^/([0-9]+)/page/([0-9]+)(/?)+$ /index.php?year=$1&cstart=$2 last;
    # вывод отдельному тегу
    #rewrite ^/tags/([^/]*)(/?)+$ /index.php?do=tags&tag=$1 last;
    #rewrite ^/tags/([^/]*)/page/([0-9]+)(/?)+$ /index.php?do=tags&tag=$1&cstart=$2 last;