Перейти к публикации

как наcтроить конфигурацию nginx - DLE - ЧПУ


Рекомендованные сообщения

Всем привет ребят, я вообще новичок в этом движке dle.

Помогите пожалуйста настроить ЧПУ для сервера NGINX

Сейчас я на этом этапе остановился, делал все по гуглу на различных форумах

 

server {
    listen 80;

    #указываю путь к проекту
    root /var/www/dle.local;

    index index.php index.html index.htm index.nginx-debian.html;

    #указываю name как обращатся в урле
    server_name dle.local;

    location / {
        # First attempt to serve request as file, then
        # as directory, then fall back to displaying a 404.
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ { 
        try_files $uri =404; 
        include /etc/nginx/fastcgi.conf;
        fastcgi_pass unix:/run/php/php7.3-fpm.sock; 
    }


    # Rewrite rules для Nginx (DLE 10.1 и ниже)
    # Редиректы
    rewrite "^/page/([0-9]+)(/?)$" /index.php?cstart=$1 last;

    # Сам пост
    rewrite "^/([0-9]{4})/([0-9]{2})/([0-9]{2})/page,([0-9]+),([0-9]+),(.*).html(/?)+$" /index.php?subaction=showfull&year=$1&month=$2&day=$3&news_page=$4&cstart=$5&news_name=$6&seourl=$6 last;
    rewrite "^/([0-9]{4})/([0-9]{2})/([0-9]{2})/page,([0-9]+),(.*).html(/?)+$" /index.php?subaction=showfull&year=$1&month=$2&day=$3&news_page=$4&news_name=$5&seourl=$5 last;
    rewrite "^/([0-9]{4})/([0-9]{2})/([0-9]{2})/print:page,([0-9]+),(.*).html(/?)+$" /engine/print.php?subaction=showfull&year=$1&month=$2&day=$3&news_page=$4&news_name=$5&seourl=$5 last;
    rewrite "^/([0-9]{4})/([0-9]{2})/([0-9]{2})/(.*).html(/?)+$" /index.php?subaction=showfull&year=$1&month=$2&day=$3&news_name=$4&seourl=$4 last;

    rewrite "^/([^.]+)/page,([0-9]+),([0-9]+),([0-9]+)-(.*).html(/?)+$" /index.php?newsid=$4&news_page=$2&cstart=$3&seourl=$5&seocat=$1 last;
    rewrite "^/([^.]+)/page,([0-9]+),([0-9]+)-(.*).html(/?)+$" /index.php?newsid=$3&news_page=$2&seourl=$4&seocat=$1 last;
    rewrite "^/([^.]+)/print:page,([0-9]+),([0-9]+)-(.*).html(/?)+$" /engine/print.php?news_page=$2&newsid=$3&seourl=$4&seocat=$1 last;
    rewrite "^/([^.]+)/([0-9]+)-(.*).html(/?)+$" /index.php?newsid=$2&seourl=$3&seocat=$1 last;

    rewrite "^/page,([0-9]+),([0-9]+),([0-9]+)-(.*).html(/?)+$" /index.php?newsid=$3&news_page=$1&cstart=$2&seourl=$4 last;
    rewrite "^/page,([0-9]+),([0-9]+)-(.*).html(/?)+$" /index.php?newsid=$2&news_page=$1&seourl=$3 last;
    rewrite "^/print:page,([0-9]+),([0-9]+)-(.*).html(/?)+$" /engine/print.php?news_page=$1&newsid=$2&seourl=$3 last;
    rewrite "^/([0-9]+)-(.*).html(/?)+$" /index.php?newsid=$1&seourl=$2 last;

    # За день
    rewrite "^/([0-9]{4})/([0-9]{2})/([0-9]{2})(/?)+$" /index.php?year=$1&month=$2&day=$3 last;
    rewrite "^/([0-9]{4})/([0-9]{2})/([0-9]{2})/page/([0-9]+)(/?)+$" /index.php?year=$1&month=$2&day=$3&cstart=$4 last;

    # За весь месяц
    rewrite "^/([0-9]{4})/([0-9]{2})(/?)+$" /index.php?year=$1&month=$2 last;
    rewrite "^/([0-9]{4})/([0-9]{2})/page/([0-9]+)(/?)+$" /index.php?year=$1&month=$2&cstart=$3 last;

    # Вывод за весь год
    rewrite "^/([0-9]{4})(/?)+$" /index.php?year=$1 last;
    rewrite "^/([0-9]{4})/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 "^/xfsearch/([^/]*)(/?)+$" /index.php?do=xfsearch&xf=$1 last;
    rewrite "^/xfsearch/([^/]*)/page/([0-9]+)(/?)+$" /index.php?do=xfsearch&xf=$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/([^/]*)/rss.xml$" /engine/rss.php?catalog=$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 "^/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;

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

 

 

после того как поставил это код в конфиги nginx у меня хоть стало переходить на файл 404 из проекта dle

теперь как мне настроить ссылки на моем проекте?

Изменено пользователем Рафаэль
Ссылка на сообщение
Поделиться на других сайтах

попробуй должно работать

# nginx configuration

index index.php;

location /page {
  rewrite ^/page/([0-9]+)(/?)$ /index.php?cstart=$1 break;
  rewrite ^/page,([0-9]+),([0-9]+),([0-9]+)-(.*).html$ /index.php?newsid=$3&news_page=$1&cstart=$2&seourl=$4 break;
  rewrite ^/page,([0-9]+),([0-9]+)-(.*).html$ /index.php?newsid=$2&news_page=$1&seourl=$3 break;
  rewrite ^/page,([0-9]+),([^/]+).html$ /index.php?do=static&page=$2&news_page=$1&seourl=$2 break;
}

location / {
  rewrite "^/([0-9]{4})/([0-9]{2})/([0-9]{2})/page,([0-9]+),([0-9]+),(.*).html$" /index.php?subaction=showfull&year=$1&month=$2&day=$3&news_page=$4&cstart=$5&news_name=$6&seourl=$6 break;
  rewrite "^/([0-9]{4})/([0-9]{2})/([0-9]{2})/page,([0-9]+),(.*).html$" /index.php?subaction=showfull&year=$1&month=$2&day=$3&news_page=$4&news_name=$5&seourl=$5 break;
  rewrite "^/([0-9]{4})/([0-9]{2})/([0-9]{2})/print:page,([0-9]+),(.*).html$" /index.php?mod=print&subaction=showfull&year=$1&month=$2&day=$3&news_page=$4&news_name=$5&seourl=$5 break;
  rewrite "^/([0-9]{4})/([0-9]{2})/([0-9]{2})/(.*).html$" /index.php?subaction=showfull&year=$1&month=$2&day=$3&news_name=$4&seourl=$4 break;
  rewrite ^/([^.]+)/page,([0-9]+),([0-9]+),([0-9]+)-(.*).html$ /index.php?newsid=$4&news_page=$2&cstart=$3&seourl=$5&seocat=$1 break;
  rewrite ^/([^.]+)/page,([0-9]+),([0-9]+)-(.*).html$ /index.php?newsid=$3&news_page=$2&seourl=$4&seocat=$1 break;
  rewrite ^/([^.]+)/print:page,([0-9]+),([0-9]+)-(.*).html$ /index.php?mod=print&news_page=$2&newsid=$3&seourl=$4&seocat=$1 break;
  rewrite ^/([^.]+)/([0-9]+)-(.*).html$ /index.php?newsid=$2&seourl=$3&seocat=$1 break;
  rewrite ^/([0-9]+)-(.*).html$ /index.php?newsid=$1&seourl=$2 break;
  rewrite "^/([0-9]{4})/([0-9]{2})/([0-9]{2})/*$" /index.php?year=$1&month=$2&day=$3 break;
  rewrite "^/([0-9]{4})/([0-9]{2})/([0-9]{2})/page/([0-9]+)/*$" /index.php?year=$1&month=$2&day=$3&cstart=$4 break;
  rewrite "^/([0-9]{4})/([0-9]{2})/*$" /index.php?year=$1&month=$2 break;
  rewrite "^/([0-9]{4})/([0-9]{2})/page/([0-9]+)/*$" /index.php?year=$1&month=$2&cstart=$3 break;
  rewrite "^/([0-9]{4})/*$" /index.php?year=$1 break;
  rewrite "^/([0-9]{4})/page/([0-9]+)/*$" /index.php?year=$1&cstart=$2 break;
  if (!-e $request_filename){
    rewrite ^/([^.]+)/page/([0-9]+)/*$ /index.php?do=cat&category=$1&cstart=$2 break;
  }
  rewrite ^/([^.]+)/?$ /index.php?do=cat&category=$1 break;
  if (!-e $request_filename){
    rewrite ^/([^.]+)/rss.xml$ /index.php?mod=rss&do=cat&category=$1 break;
  }
  if (!-e $request_filename){
    rewrite ^/([^/]+).html$ /index.php?do=static&page=$1&seourl=$1 break;
  }
}

location /print {
  rewrite ^/print:page,([0-9]+),([0-9]+)-(.*).html$ /index.php?mod=print&news_page=$1&newsid=$2&seourl=$3 break;
  rewrite ^/print:([^/]+).html$ /index.php?mod=print&do=static&page=$1&seourl=$1 break;
}

location /tags {
  rewrite ^/tags/([^/]*)/*$ /index.php?do=tags&tag=$1 break;
  rewrite ^/tags/([^/]*)/page/([0-9]+)/*$ /index.php?do=tags&tag=$1&cstart=$2 break;
}

location /xfsearch {
  rewrite ^/xfsearch/(.*)/page/([0-9]+)/*$ /index.php?do=xfsearch&xf=$1&cstart=$2 break;
  rewrite ^/xfsearch/(.*)/?$ /index.php?do=xfsearch&xf=$1 break;
}

location /user {
  rewrite ^/user/([^/]*)/rss.xml$ /index.php?mod=rss&subaction=allnews&user=$1 break;
  rewrite ^/user/([^/]*)/*$ /index.php?subaction=userinfo&user=$1 break;
  rewrite ^/user/([^/]*)/page/([0-9]+)/*$ /index.php?subaction=userinfo&user=$1&cstart=$2 break;
  rewrite ^/user/([^/]*)/news/*$ /index.php?subaction=allnews&user=$1 break;
  rewrite ^/user/([^/]*)/news/page/([0-9]+)/*$ /index.php?subaction=allnews&user=$1&cstart=$2 break;
  rewrite ^/user/([^/]*)/news/rss.xml/*$ /index.php?mod=rss&subaction=allnews&user=$1 break;
}

location /lastnews {
  rewrite ^/lastnews/*$ /index.php?do=lastnews break;
  rewrite ^/lastnews/page/([0-9]+)/*$ /index.php?do=lastnews&cstart=$1 break;
}

location /catalog {
  rewrite ^/catalog/([^/]*)/rss.xml$ /index.php?mod=rss&catalog=$1 break;
  rewrite ^/catalog/([^/]*)/*$ /index.php?catalog=$1 break;
  rewrite ^/catalog/([^/]*)/page/([0-9]+)/*$ /index.php?catalog=$1&cstart=$2 break;
}

location /newposts {
  rewrite ^/newposts/*$ /index.php?subaction=newposts break;
  rewrite ^/newposts/page/([0-9]+)/*$ /index.php?subaction=newposts&cstart=$1 break;
}

location = /feedback.html {
  rewrite ^(.*)$ /index.php?do=feedback break;
}

location = /register.html {
  rewrite ^(.*)$ /index.php?do=register break;
}

location /favorites {
  rewrite ^/favorites/*$ /index.php?do=favorites break;
  rewrite ^/favorites/page/([0-9]+)/*$ /index.php?do=favorites&cstart=$1 break;
}

location = /rules.html {
  rewrite ^(.*)$ /index.php?do=rules break;
}

location = /statistics.html {
  rewrite ^(.*)$ /index.php?do=stats break;
}

location = /addnews.html {
  rewrite ^(.*)$ /index.php?do=addnews break;
}

location = /rss.xml {
  rewrite ^(.*)$ /index.php?mod=rss break;
}

location = /sitemap.xml {
  rewrite ^(.*)$ /uploads/sitemap.xml break;
}

 

Ссылка на сообщение
Поделиться на других сайтах

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

Внимание !!!

На данном форуме существуют достаточно жесткие правила, поэтому прежде чем создавать свою тему убедитесь, что вы внимательно их прочитали и поняли.

 

1. Если ваша тема начинается с вопроса и вам нужна какая либо помощь, то в самой теме в обязательном порядке вы должны указывать ссылку на ваш сайт. Если ваш сайт находится в локальной сети и вы не можете предоставить ссылку, или вы не хотите публиковать открытой ссылки на ваш сайт, то отправляйте персональное сообщение с вопросом в службу поддержки непосредственно с сайта http://dle-news.ru/, вам ответят на ваш вопрос в персональном порядке, в случае если пользуетесь платной версией скрипта и обладаете лицензией на скрипт. Если вы пользуетесь демоверсией, то вам необходимо разместить сайт в сети интернет, и только потом обращаться за помощью. По находящимся на локальных компьютерах демоверсиям никакой помощи и поддержки на форуме не оказывается. Если вы не указали сайт, то ваша тема будет закрыта, а аккаунт на форуме заблокирован.

Изменено пользователем Captain
Ссылка на сообщение
Поделиться на других сайтах
8 часов назад, Captain сказал:

Внимание !!!

На данном форуме существуют достаточно жесткие правила, поэтому прежде чем создавать свою тему убедитесь, что вы внимательно их прочитали и поняли.

Клоунам закон не писан, я так понимаю.

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...