Дек 09 2009

Правила nginx rewrite для популярных CMS.

Последнее время все чаще приходится переводить проекты клиентов на Nginx, соответственно клиенты разные, движки используют разные. Вот что удалось накопить, в основном нарыл по просторам интернет, но то что не удалось, написал сам. Привожу корневой location.
Wordpress:

location / {
            root   /var/www/hilik.org.ua;
            index  index.php index.html index.htm;
             if (!-e $request_filename) {
                     rewrite (/|\.php|\.html|\.htm|\.feed|\.pdf|\.raw|/[^.]*)$ /index.php last;
                }
 
        }

CMS Made Simple:

        location / {
            root   /var/www/hilik.org.ua;
            index  index.php index.html index.htm;
             if (!-e $request_filename) {
                        rewrite ^(.*)$ /index.php?page=$1 last;
                }
        }

Joomla 1.5

        location / {
            root   /var/www/hilik.org.ua;
            index  index.php index.html index.htm;
                if (!-e $request_filename) {
                    rewrite ^(.+)$ /index.php?q=$1 last;
                }
      }

И для Simple Mashine Forum с плугином Pretty Urls, тут реврайт стоит только на разделы и темы, остальное я не стал переводить на SEO URL:

        location /forum/ {
                root   /var/www/hilik.org.ua;
                index index.php;
 
                rewrite ^(/forum)/([-_!~*'()$a-zA-Z0-9]+)/[0-9]?/?$ $1/index.php?pretty%3Bboard=$2.0 last;
                rewrite ^(/forum)/([-_!~*'()$a-zA-Z0-9]+)/([0-9]*)/[0-9]?/?$ $1/index.php?pretty%3Bboard=$2.$3 last;
                rewrite ^(/forum)/([-_!~*'()$a-zA-Z0-9]+)/([-_!~*'()$a-zA-Z0-9]+)/[0-9]?/?$ $1/index.php?pretty%3Bboard=$2%3Bt
opic=$3.0 last;
                rewrite ^(/forum)/([-_!~*'()$a-zA-Z0-9]+)/([-_!~*'()$a-zA-Z0-9]+)/([0-9]*|msg[0-9]*|new)/[0-9]?/?$ $1/index.ph
p?pretty%3Bboard=$2%3Btopic=$3.$4 last;
 
        }

Для ModX:

location / {
    root /var/www/hilik.org.ua;
    index index.php index.html ;
    if (!-e $request_filename) {
            rewrite ^(.*)$ /index.php?q=$1 last;
    }
}

В общем, при должном желании, использовать nginx для замены Apache можно. При этом мы получаем прирост производительности.

Добавить в закладки:

google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru
  • By Dmitriy, 03.08.2010 @ 14:15

    Привет, а в joomla при этом в урле остается /index.php/ — возможно его оттуда убрать или на что-то более красивое заменить?

Other Links to this Post


Украинская Баннерная Сеть