ПРОЕКТЫ 


  АРХИВ 


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


  • To: nginx-ru@xxxxxxxxx
  • Subject: Re: Rewrite rules
  • From: Anton Koldaev <koldaevav@xxxxxxxxx>
  • Date: Fri, 18 Mar 2011 12:38:37 +0300
  • Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc:content-type:content-transfer-encoding; bh=7s0ZNYX2Zj1ow9mw+PYND1cHUs2fWxmgNxQyCCHHdMA=; b=EZTodUCKACtYS60VbL63ZEdAqxb9UOQVmKLNW6lPg/mZISxXp/PEMnKFIGMccp6Qsz pRhU8prHBLq3VKVRyTn0ZXnMxqYz7GIwOqQX8PvTn5BTjOBtvvwJylPK9MjQ9q/N4ht0 3uVpWQry05puJCR5RxgCWn+GrwsmhVDoVlOfk=
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type:content-transfer-encoding; b=Fp0E3fy8ZrnDtg6V18iCT/xes9tKPvmBMPYnXK5pGQzbkCqHvEEwAKlJsiO5bnjjbL LqVtRdyrw80gj9YgjszMnlgy6k04OlsiL19+vRjEghJYz+FexjQiFjhcvn6ZT0yuLzhi V0Pg30+9FMCXJWBsdtLtAGdqGa7+QjA/A4aEM=
  • In-reply-to: <4D83219C.4020700@xxxxxxxxxxx>
  • References: <4D7FEBE6.7010606@xxxxxxxxxxx> <4D7FF5C5.80806@xxxxxxxxx> <4D828F3F.8090705@xxxxxxxxxxx> <4D83219C.4020700@xxxxxxxxxxx>

Рекомендую почитать тут:
http://kbeezie.com/view/php-self-path-nginx/

2011/3/18 Sergey Kobzar <sergey.kobzar@xxxxxxxxxxx>:
> Появилась другая проблема - если 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
>



-- 
Best regards,
Koldaev Anton

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


 




Copyright © Lexa Software, 1996-2009.