ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Rewrite rules



Появилась другая проблема - если 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@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru


_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.