Nginx rewrite for Maxsite CMS

Dmitriy_K nginx-forum на nginx.us
Вт Авг 31 22:28:33 MSD 2010


Завяз с написанием реврайтов для CMS
Maxsite. 
Там даны только примеры реврайтов для
apache (.htaccess), и то весьма невнятно:
[quote]

RewriteEngine on
RewriteBase /
RewriteCond $1 !^(index\.php|uploads|robots\.txt|favicon\.ico)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
RewriteRule ^(.*)$ /index.php?/$1 [L,QSA]


На некотрых серверах вместо строчки:
	RewriteRule . /index.php [L]
можно попробовать указать:
	RewriteRule ^(.*)$ /index.php?/$1 [L,QSA]

Вариант для Nginx с апачем в качестве
надстройки:
RewriteRule ^(.*)$ /index.php?$1 [L,QSA][/quote]
Понимай как хочешь... :-( 
Через поиск никакого рабочего варианта
реврайтов найти не удалось.

Пробовал прописать в конфиге nginx (он у
меня без бэкенда) вариации типа:
[code]
    server {
        listen 80;
        server_name net.open.ru net;

        location / {
            root /site/maxsite;
            index index.php;

            if ($query_string =
!^(index\.php|uploads|robots\.txt|favicon\.ico)) {
                rewrite ^/(.*)$ /index.php?$1 last;
                break;
            }

            if (!-e $request_filename) {
                rewrite ^/(.*)$ /index.php?$1 last;
                break;
            }


#            if ($request_uri ~* ^.*/.*$) {
#                rewrite ^/(\w*)/(.*)$ /$1/index.php?q=$2 last;
#                break;
#            }
        }

        location ~* ^.+\.(jpg|jpeg|gif|css|png|js|ico)$ {
                root /site/maxsite;
                #access_log off;
                break;
        }

        location ~ \.php$ {
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME 
/site/maxsite$fastcgi_script_name;
            include        fastcgi_params;
        }
    }
[/code]
При попытке нажать клавишу первой
страницы CMS "Установить" не происходит
корректная передача параметров другой
странице. В результате, выдаётся пустое
окно, хотя в лог пишется "200". Также
некорректно обрабатываются
несуществующие URL. Выдаётся ошибка
типа:
[code]Table 'maxsite.mso_page' doesn't exist
SELECT `page_id` FROM (`mso_page`) WHERE `page_slug` = 'beliberda' OR
`page_id` = 'beliberda' LIMIT 1
[/code]
К сожалению, в логах информации как
обрабатывались реврайты нет, даже при
установке уровня подробностей "info".

Буду очень благодарен за помощь в
устранении ошибки в правилах
реврайтов.

Posted at Nginx Forum: http://forum.nginx.org/read.php?21,125748,125748#msg-125748




Подробная информация о списке рассылки nginx-ru