Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы » Как настроить nginx rewrite для работы в папке?

Как настроить nginx rewrite для работы в папке?


     08.12.2016    Все вопросы » Общие вопросы    3903

вопрос
Есть сайт, находится в /var/www/site.ru, в этой же папке site.ru имеется другая папка, test, т.е получается вот так /var/www/site.ru/test , в папке test тоже движок dle, но не работают rewrite, только без ЧПУ. Пробовал в config nginx писать вот так
location /test/ {
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(/?)+$" /engine/print.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})/(.*).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 lastbreak
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(/?)+$" /engine/print.php?news_page=$2&newsid=$3&seourl=$4&seocat=$1 break;
rewrite "^/([^.]+)/([0-9]+)-(.*).html(/?)+$" /index.php?newsid=$2&seourl=$3&seocat=$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 "^/print:page,([0-9]+),([0-9]+)-(.*).html(/?)+$" /engine/print.php?news_page=$1&newsid=$2&seourl=$3 break;
rewrite "^/([0-9]+)-(.*).html(/?)+$" /index.php?newsid=$1&seourl=$2 break;
}
не получается, все равно ЧПУ для материалов не работает. Может кто знает как решить это?

Ответа пока нет


2 комментария

venrom
Юзер

venrom - 8 декабря 2016 23:03 -

Пробовал такой же config , но только вместо break писал last, все равно не работает

venrom
Юзер

venrom - 14 декабря 2016 12:41 -

получилось сделать, ЧПУ работает, но не работает навигация на странице тэга, сам тэг нормально все материалы отображает, а вот при переходе на вторую страницу тэга, 404 ошибка ((
location ~* (mods) {
	rewrite "^/(.*)/page/([0-9]+)(/?)$" /$1/index.php?cstart=$2 last;
    
        # Сам пост
        rewrite "^/(.*)/([0-9]{4})/([0-9]{2})/([0-9]{2})/page,([0-9]+),([0-9]+),(.*).html(/?)+$" /$1/index.php?subaction=showfull&year=$2&month=$3&day=$4&news_page=$5&cstart=$6&news_name=$7&seourl=$7 last;
        rewrite "^/(.*)/([0-9]{4})/([0-9]{2})/([0-9]{2})/page,([0-9]+),(.*).html(/?)+$" /$1/index.php?subaction=showfull&year=$2&month=$3&day=$4&news_page=$5&news_name=$6&seourl=$6 last;
        rewrite "^/(.*)/([0-9]{4})/([0-9]{2})/([0-9]{2})/print:page,([0-9]+),(.*).html(/?)+$" /engine/print.php?subaction=showfull&year=$2&month=$3&day=$4&news_page=$5&news_name=$6&seourl=$6 last;
        rewrite "^/(.*)/([0-9]{4})/([0-9]{2})/([0-9]{2})/(.*).html(/?)+$" /$1/index.php?subaction=showfull&year=$2&month=$3&day=$4&news_name=$5&seourl=$5 last;

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

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

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

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

        # Вывод за весь год
        rewrite "^/(.*)/([0-9]{4})(/?)+$" /$1/index.php?year=$2 last;
        rewrite "^/(.*)/([0-9]{4})/page/([0-9]+)(/?)+$" /$1/index.php?year=$2&cstart=$3 last;

        # вывод отдельному тегу
        rewrite "^/(.*)/tags/([^/]*)(/?)+$" /$1/index.php?do=tags&tag=$2 last;
        rewrite "^/(.*)/tags/([^/]*)/page/([0-9]+)(/?)+$" /$1/index.php?do=tags&tag=$2&cstart=$3 last;

        # поиск по доп полям
        rewrite "^/(.*)/xfsearch/(.*)/page/([0-9]+)(/?)+$" /$1/index.php?do=xfsearch&xf=$2&cstart=$3 last;
        rewrite "^/(.*)/xfsearch/(.*)(/?)+$" /$1/index.php?do=xfsearch&xf=$2 last;

        # вывод для отдельного юзера
        rewrite "^/(.*)/user/([^/]*)/rss.xml$" /engine/rss.php?subaction=allnews&user=$2 last;
        rewrite "^/(.*)/user/([^/]*)(/?)+$" /$1/index.php?subaction=userinfo&user=$2 last;
        rewrite "^/(.*)/user/([^/]*)/page/([0-9]+)(/?)+$" /$1/index.php?subaction=userinfo&user=$2&cstart=$3 last;
        rewrite "^/(.*)/user/([^/]*)/news(/?)+$" /$1/index.php?subaction=allnews&user=$2 last;
        rewrite "^/(.*)/user/([^/]*)/news/page/([0-9]+)(/?)+$" /$1/index.php?subaction=allnews&user=$2&cstart=$3 last;
        rewrite "^/(.*)/user/([^/]*)/news/rss.xml(/?)+$" /engine/rss.php?subaction=allnews&user=$2 last;
    
        # вывод всех последних новостей
        rewrite "^/(.*)/lastnews(/?)+$" /$1/index.php?do=lastnews last;
        rewrite "^/(.*)/lastnews/page/([0-9]+)(/?)+$" /$1/index.php?do=lastnews&cstart=$2 last;

        # вывод в виде каталога
        rewrite "^/(.*)/catalog/([^/]*)/rss.xml$" /engine/rss.php?catalog=$2 last;
        rewrite "^/(.*)/catalog/([^/]*)(/?)+$" /$1/index.php?catalog=$2 last;
        rewrite "^/(.*)/catalog/([^/]*)/page/([0-9]+)(/?)+$" /$1/index.php?catalog=$2&cstart=$3 last;

        # вывод непрочитанных статей
        rewrite "^/(.*)/newposts(/?)+$" /$1/index.php?subaction=newposts last;
        rewrite "^/(.*)/newposts/page/([0-9]+)(/?)+$" /$1/index.php?subaction=newposts&cstart=$2 last;

        # вывод избранных статей
        rewrite "^/(.*)/favorites(/?)+$" /$1/index.php?do=favorites last;
        rewrite "^/(.*)/favorites/page/([0-9]+)(/?)+$" /$1/index.php?do=favorites&cstart=$2 last;

        rewrite "^/(.*)/rules.html$" /$1/index.php?do=rules last;
        rewrite "^/(.*)/statistics.html$" /$1/index.php?do=stats last;
        rewrite "^/(.*)/addnews.html$" /$1/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]+)(/?)+$" /$1/index.php?do=cat&category=$2&cstart=$3 last;
            rewrite "^/(.*)/([^.]+)/?$" /$1/index.php?do=cat&category=$2 last;
        }

        if (!-f $request_filename) {
            rewrite "^/(.*)/([^.]+)/rss.xml$" /engine/rss.php?do=cat&category=$2 last;
            rewrite "^/(.*)/page,([0-9]+),([^/]+).html$" /$1/index.php?do=static&page=$3&news_page=$2 last;
            rewrite "^/(.*)/print:([^/]+).html$" /engine/print.php?do=static&page=$2 last;
        }

        if (!-f $request_filename) {
            rewrite "^/(.*)/([^/]+).html$" /$1/index.php?do=static&page=$2 last;
        }
        
                
        location ~ \.php$ {
            index index.php;
            try_files $uri =404; 
            fastcgi_pass unix:/run/php-fpm/php-fpm.sock; 
            fastcgi_index index.php; 
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
            include fastcgi_params; 
        }
	}

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх