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

insider

Клиенты
  • Публикации

    5
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные пользователем insider

  1. inokentik

    В скобках - это кол-во новостей в категории за сегодня?

    Сделать можно, но будет нести нагрузку. Причём довольно большую.
    Это почему интересно? Можно обойтись одним запросом при добавлении/удалении новости. Либо вообще в файл писать.
  2. А что чудо? Самому переделать просто ведь

    Берем

    RewriteRule ^тут_сам_регулярное_выражение$ перенаправление [L]
    Меняем на
    rewrite ^/тут_сам_регулярное_выражение$ /перенаправление last;
    Как видно отсюда, адреса необходимо предварить / Так же нужно поменять конструкции вида
    [0-9]{n}
    на
    [0-9]+
    Т.к. парсер регулярных выражений в nginx не позволяет указывать заданное число повторений Идем далее
    RewriteCond %{REQUEST_FILENAME} !-d
    Меняется на
    if (!-d $request_filename)
    И тут же по аналогии
    RewriteCond %{REQUEST_FILENAME} !-f
    Меняем на
    if (!-f $request_filename)
    Все, что после RewriteCond и до следующего RewriteCond, либо до конца, заключается в {}-скобки Ну и вот готовые правила
    # Редиректы
    
    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;
    
    }

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