Настройка nginx, rewrite правила

Magesy

Новичок
Настройка nginx, rewrite правила

Мне необходимо настроить на своем сервере nginx под CMS DLE 5.0. К сожалению не могу настроить теперь rewrite правила. Если кто настраивал уже или знает что именно надо прописать,пожалуйста помогите. Надо следущее перекинуть на язык nginx 0.4.9 .

Правила написанные под Apache:

RewriteEngine On
RewriteBase /

# RSS
RewriteRule ^rss.xml(/?)+$ /engine/rss.php
RewriteRule ^category/([^/]*)/rss.xml(/?)+$ /engine/rss.php?do=cat&category=$1

# Добавление новости
RewriteRule ^addnews(/?)+$ /?do=addnews

# Статистика
RewriteRule ^stats(/?)+$ /?do=stats

# Категории
RewriteRule ^category(/?)+$ /?do=cat
RewriteRule ^category/([^/]*)(/?)+$ /?do=cat&category=$1
RewriteRule ^category/([^/]*)/page/([0-9]+)(/?)+$ /?do=cat&category=$1&cstart=$2

# вывод для отдельного юзера
RewriteRule ^user(/?)+$ /?do=user
RewriteRule ^user/([^/]*)(/?)+$ /?subaction=userinfo&user=$1
RewriteRule ^user/([^/]*)/page/([0-9]+)(/?)+$ /?subaction=userinfo&user=$1&cstart=$2

# вывод непрочитанных статей
RewriteRule ^newposts(/?)+$ /?subaction=newposts
RewriteRule ^newposts/page/([0-9]+)(/?)+$ /?subaction=newposts&cstart=$1

# Редиректы
RewriteRule ^page(/?)+$ /?cstart=0
RewriteRule ^page/(.*)$ /?cstart=$1

# Сам пост
RewriteRule ^([0-9]{4})/([0-9]{2})/([0-9]{2})/page,([0-9]+),([0-9]+),(.*).html(/?)+$ /?subaction=showfull&year=$1&month=$2&day=$3&news_page=$4&cstart=$5&news_name=$6
RewriteRule ^([0-9]{4})/([0-9]{2})/([0-9]{2})/page,([0-9]+),(.*).html(/?)+$ /?subaction=showfull&year=$1&month=$2&day=$3&news_page=$4&news_name=$5
RewriteRule ^([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
RewriteRule ^([0-9]{4})/([0-9]{2})/([0-9]{2})/(.*).html(/?)+$ /?subaction=showfull&year=$1&month=$2&day=$3&news_name=$4

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

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

# Вывод за весь год
RewriteRule ^([0-9]{4})(/?)+$ /?year=$1
RewriteRule ^([0-9]{4})/page/([0-9]+)(/?)+$ /?year=$1&cstart=$2

# Статистические страницы
RewriteRule ^static/(.*).html(/?)+$ /?do=static&page=$1

# вывод избранных статей
RewriteRule ^favorites(/?)+$ /?do=favorites
RewriteRule ^favorites/page/([0-9]+)(/?)+$ /?do=favorites&cstart=$1


Заранее спасибо.
 

Magesy

Новичок
Этот мануал был сразу прочитан.

На данный момент было попробывано написать в nginx.conf :

location / {

# Partner module
rewrite ^partner(/?)+$ /?do=partner last;

# RSS
rewrite ^rss.xml(/?)+$ /engine/rss.php last;
rewrite ^category/([^/]*)/rss.xml(/?)+$ /engine/rss.php?do=cat&category=$1 last;

# Add news
rewrite ^addnews(/?)+$ /?do=addnews last;

# Statistik
rewrite ^stats(/?)+$ /?do=stats last;

# Categories
rewrite ^category(/?)+$ /?do=cat last;
rewrite ^category/([^/]*)(/?)+$ /?do=cat&category=$1 last;
rewrite ^category/([^/]*)/page/([0-9]+)(/?)+$ /?do=cat&category=$1&cstart=$2 last;

# Ouput for each user
rewrite ^user(/?)+$ /?do=user last;
rewrite ^user/([^/]*)(/?)+$ /?subaction=userinfo&user=$1 last;
rewrite ^user/([^/]*)/page/([0-9]+)(/?)+$ /?subaction=userinfo&user=$1&cstart=$2 last;

# Output new news
rewrite ^newposts(/?)+$ /?subaction=newposts last;
rewrite ^newposts/page/([0-9]+)(/?)+$ /?subaction=newposts&cstart=$1 last;

# Redirect
rewrite ^page(/?)+$ /?cstart=0 last;
rewrite ^page/(.*)$ /?cstart=$1 last;

# Self article
rewrite ^([0-9]{4})/([0-9]{2})/([0-9]{2})/page,([0-9]+),([0-9]+),(.*).html(/?)+$ /?subaction=showfull&year=$1&month=$2&day=$3&news_page=$4&cstart=$5&news_name=$6 last;
rewrite ^([0-9]{4})/([0-9]{2})/([0-9]{2})/page,([0-9]+),(.*).html(/?)+$ /?subaction=showfull&year=$1&month=$2&day=$3&news_page=$4&news_name=$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 last;
rewrite ^([0-9]{4})/([0-9]{2})/([0-9]{2})/(.*).html(/?)+$ /?subaction=showfull&year=$1&month=$2&day=$3&news_name=$4 last;

# A Day
rewrite ^([0-9]{4})/([0-9]{2})/([0-9]{2})(/?)+$ /?year=$1&month=$2&day=$3 last;
rewrite ^([0-9]{4})/([0-9]{2})/([0-9]{2})/page/([0-9]+)(/?)+$ /?year=$1&month=$2&day=$3&cstart=$4 last;

# A month
rewrite ^([0-9]{4})/([0-9]{2})(/?)+$ /?year=$1&month=$2 last;
rewrite ^([0-9]{4})/([0-9]{2})/page/([0-9]+)(/?)+$ /?year=$1&month=$2&cstart=$3 last;

# A year
rewrite ^([0-9]{4})(/?)+$ /?year=$1 last;
rewrite ^([0-9]{4})/page/([0-9]+)(/?)+$ /?year=$1&cstart=$2 last;

# Statical Pages
rewrite ^static/(.*).html(/?)+$ /?do=static&page=$1 last;

# Favorites
rewrite ^favorites(/?)+$ /?do=favorites last;
rewrite ^favorites/page/([0-9]+)(/?)+$ /?do=favorites&cstart=$1 last;

# thelink
rewrite ^linkcat.htm$ /linkcat.php last;
rewrite ^linkcat_([0-9]*)+.htm$ /linkcat.php?$1 last;

}

К сожалению nginx ругается и не запускается.
Пожалуйста отвечайте по существу.Если не хотите отвечать,не пишите вообще. Я прошу о помощи а не о стебе.
 

Frol

Новичок
1. все адреса начинаются с /
2. выражения с фигурными скобками надо брать в кавычки.

пожалуйста избегайте выражений "nginx ругается и не запускается".
 

Magesy

Новичок
Вы не могли бы показать пример вот на этом по пункту номер 2.

rewrite ^([0-9]{4})/([0-9]{2})/([0-9]{2})/page,([0-9]+),([0-9]+),(.*).html(/?)+$ /?subaction=showfull&year=$1&month=$2&day=$3&news_page=$4&cstart=$5&news_name=$6

Заранее спасибо вам.

-~{}~ 25.10.06 02:02:

Мне выдает такую ошибку:
[emerg] 30875#0: invalid number arguments in directive "rewrite" in /usr/local/nginx/nginx.conf:95

В 95 строке следущее:

rewrite ^/static/(.*).html(/?)+$ /?do=static&page=$1 last;

Что же в строке не так?
 
Сверху