Rewrite rules

Sergey Kobzar sergey.kobzar на itcraft.org
Пт Мар 18 12:10:52 MSK 2011


Появилась другая проблема - если url выглядит в виде /backend.php/login, 
то его нужно передавать на /backend.php, а не на /index.php.

Расписал вот так, но все равно не работает - возвращает 404 ошибку:

server {
         listen 80;
         server_name test.localhost;

         access_log /var/log/nginx/test.localhost_access.log main;
         error_log /var/log/nginx/test.localhost_error.log info;

         root /home/www/test/htdocs/web;

         rewrite ^/css/[0-9]+/(.*?)$ /css/$1;
         rewrite ^/js/[0-9]+/(.*?)$ /js/$1;

         location /backend.php {
                 if (!-e $request_filename) {
                         rewrite ^/(.*) /backend.php?q=$uri;
                 }
         }

         if (!-e $request_filename) {
                 rewrite ^/(.*) /index.php?q=$uri;
         }

         include /etc/nginx/fastcgi.inc;
         }

# cat ./fastcgi.inc
location ~ \.php$ {
         fastcgi_pass    127.0.0.1:9000;
         fastcgi_index   index.php;
         fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;
         include         /etc/nginx/fastcgi_params;
}


Спасибо.


On 03/18/11 00:46, Sergey Kobzar wrote:
> :)
>
> Исходные реврайты:
> RewriteRule ^css/[0-9]+/(.*?)$ /css/$1 [L]
> RewriteRule ^js/[0-9]+/(.*?)$ /js/$1 [L]
>
> # we check if the .html version is here (caching)
> RewriteRule ^$ index.html [QSA]
> RewriteRule ^([^.]+)$ $1.html [QSA]
> RewriteCond %{REQUEST_FILENAME} !-f
> - эти я выкинул, т.к. не уверен что они вообще используются
>
> # no, so we redirect to our front web controller
> RewriteRule ^(.*)$ index.php [QSA,L]
>
>
> У меня получилось вот так:
> rewrite ^/css/[0-9]+/(.*?)$ /css/$1;
> rewrite ^/js/[0-9]+/(.*?)$ /js/$1;
>
> if (!-e $request_filename) {
> rewrite ^/(.*) /index.php?q=$uri;
> }
>
> Вроде бы работает, но на некоторых страницах нет картинок. Возможно
> программеры недоделали - завтра буду разбираться.
>
> P.S. Наск. я понял используется framework symfony - отсюда все ноги растут.
>
>
> On 03/16/11 01:27, Vitaly Tskhovrebov wrote:
>> Где же примеры Ваших попыток? А мы исправим.
>>
>> On 3/16/2011 1:44 AM, Sergey Kobzar wrote:
>>> Добрый вечер.
>>>
>>> Никак не могу переписать следующие Apache rewrite rules под Nginx:
>>>
>>> RewriteRule ^css/[0-9]+/(.*?)$ /css/$1 [L]
>>> RewriteRule ^js/[0-9]+/(.*?)$ /js/$1 [L]
>>>
>>> # we check if the .html version is here (caching)
>>> RewriteRule ^$ index.html [QSA]
>>> RewriteRule ^([^.]+)$ $1.html [QSA]
>>> RewriteCond %{REQUEST_FILENAME} !-f
>>>
>>> # no, so we redirect to our front web controller
>>> RewriteRule ^(.*)$ index.php [QSA,L]
>>>
>>> Спасибо за помощь...
>>>
>>>
>>> _______________________________________________
>>> nginx-ru mailing list
>>> nginx-ru at nginx.org
>>> http://nginx.org/mailman/listinfo/nginx-ru
>>
>>
>> _______________________________________________
>> nginx-ru mailing list
>> nginx-ru at nginx.org
>> http://nginx.org/mailman/listinfo/nginx-ru
>
> _______________________________________________
> nginx-ru mailing list
> nginx-ru at nginx.org
> http://nginx.org/mailman/listinfo/nginx-ru



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