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

Реврайты под DLE8.0 для nginx


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

  • 1 месяц спустя...

А что чудо? Самому переделать просто ведь

Берем

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;

}

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

Вот поэтому и не должно быть такой кучи правил для ЧПУ - достаточно одного универсального и для апача и для nginx

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

Спасибо, всё работает :)

Теперь на хостинге могу держать и сайты сделанные на DLE :)

Вы из какого города?)С меня пиво :)

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

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

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

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

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

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

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

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

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

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