ПРОЕКТЫ 


  АРХИВ 


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



Переделал так:

server {
    listen 80;
    server_name test.info;
    access_log /home/logs/t_access.log combined;
    error_log /home/logs/t_error.log debug;
    server_name_in_redirect off;
    root /home/test;
    index index.php index.pl index.cgi index.html index.htm;

    location / {
        try_files      $uri  $uri/  @nedrupal;
    }

    location ~ \.php$ {
        try_files      $uri  @nedrupal;
        fastcgi_param SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        fastcgi_param SCRIPT_NAME $fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_script_name;
        fastcgi_pass unix:/mnt/md0/php-fcgi.sock;
        fastcgi_pass_request_body off;
        client_body_in_file_only clean;
        fastcgi_param   REQUEST_BODY_FILE  $request_body_file;
        fastcgi_param   CONTENT_TYPE    $content_type;
        fastcgi_param   CONTENT_LENGTH  $content_length;
        fastcgi_param   DOCUMENT_ROOT   $document_root;
        fastcgi_param   DOCUMENT_URI    $document_uri;
        fastcgi_param   GATEWAY_INTERFACE       CGI/1.1;
        fastcgi_param   QUERY_STRING    $args;
        fastcgi_param   REMOTE_ADDR             $remote_addr;
        fastcgi_param   REMOTE_PORT             $remote_port;
        fastcgi_param   REQUEST_URI             $request_uri;
        fastcgi_param   REQUEST_METHOD  $request_method;
        fastcgi_param   SERVER_ADDR             $server_addr;
        fastcgi_param   SERVER_NAME             $server_name;
        fastcgi_param   SERVER_PORT             $server_port;
        fastcgi_param   SERVER_PROTOCOL $server_protocol;
        fastcgi_param   SERVER_SOFTWARE nginx/$nginx_version;
        fastcgi_param   REDIRECT_STATUS 200;
        fastcgi_index   index.php;
    }

    location @nedrupal {
        fastcgi_param SCRIPT_FILENAME  /home/person51/index.php;
        fastcgi_param SCRIPT_NAME /index.php;
        fastcgi_param PATH_INFO /index.php;
        fastcgi_pass unix:/mnt/md0/php-fcgi.sock;
        fastcgi_pass_request_body off;
        client_body_in_file_only clean;
        fastcgi_param   REQUEST_BODY_FILE               $request_body_file;
        fastcgi_param   CONTENT_TYPE            $content_type;
        fastcgi_param   CONTENT_LENGTH          $content_length;
        fastcgi_param   DOCUMENT_ROOT           $document_root;
        fastcgi_param   DOCUMENT_URI            $document_uri;
        fastcgi_param   GATEWAY_INTERFACE       CGI/1.1;
        fastcgi_param   QUERY_STRING    permalink=$uri&query_str=$args;
        fastcgi_param   REMOTE_ADDR                     $remote_addr;
        fastcgi_param   REMOTE_PORT                     $remote_port;
        fastcgi_param   REQUEST_URI                     $request_uri;
        fastcgi_param   REQUEST_METHOD          $request_method;
        fastcgi_param   SERVER_ADDR                     $server_addr;
        fastcgi_param   SERVER_NAME                     $server_name;
        fastcgi_param   SERVER_PORT                     $server_port;
        fastcgi_param   SERVER_PROTOCOL         $server_protocol;
        fastcgi_param   SERVER_SOFTWARE         nginx/$nginx_version;
        fastcgi_param   REDIRECT_STATUS 200;
        fastcgi_index   index.php;
    }

В результате добился :

$_SERVER["QUERY_STRING"]=permalink=/video-1/Smotret-Kino-Besplatno-7/&query_
str=
$_SERVER["REQUEST_URI"]=/video-1/Smotret-Kino-Besplatno-7/
$_SERVER["SCRIPT_NAME"]=/index.php

Для сравнения в апаче :

$_SERVER["QUERY_STRING"]=permalink=video-1/Smotret-Kino-Besplatno-7/&query_s
tr=
$_SERVER["REQUEST_URI"]=/video-1/Smotret-Kino-Besplatno-7/
$_SERVER["SCRIPT_NAME"]=/index.php

Тоесть есть лишний слеш. Что я делаю не так?


-----Original Message-----
From: maxhl [mailto:maxhl@xxxxxxxxxxxxxx] 
Sent: Thursday, December 03, 2009 3:47 PM
To: nginx-ru@xxxxxxxxx
Subject: Подскажите по rewrite


Hello!
Есть набор правил:
____________________________________________________________________________
RewriteCond %{QUERY_STRING} (.*)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?permalink=$1&query_str=%1 [L,QSA]

#feed
RewriteRule ^feed/rss/$ _cache/rss_main.xml [L,QSA]

#sitemap
RewriteRule ^sitemap/$ index.php?page=sitemap [L,QSA]
RewriteRule ^sitemap/([0-9]+)/$ index.php?page=sitemap&spage=$1 [L,QSA]

#contact form
RewriteRule ^contact/$ index.php?page=contact_form [L,QSA]
____________________________________________________________________________

Подскажите как переделать это для nginx. Пробовал так:

location ~ ^.+.php$ {

        #fastcgi_param SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        fastcgi_param  SCRIPT_FILENAME  /home/user/index.php;

        #fastcgi_param SCRIPT_NAME $fastcgi_script_name;
        fastcgi_param  SCRIPT_NAME      /index.php;

        fastcgi_param PATH_INFO $fastcgi_script_name;
        #fastcgi_param PATH_INFO /index.php;

        fastcgi_param  QUERY_STRING     permalink=$uri&$args;
        #permalink=$1&query_str=%1
        fastcgi_pass unix:/mnt/md0/php-fcgi.sock;

        fastcgi_pass_request_body off;
        client_body_in_file_only clean;
        fastcgi_param  REQUEST_BODY_FILE  $request_body_file;
        fastcgi_param   CONTENT_TYPE            $content_type;

        fastcgi_param   CONTENT_LENGTH          $content_length;
        fastcgi_param   DOCUMENT_ROOT           $document_root;
        fastcgi_param   DOCUMENT_URI            $document_uri;
        fastcgi_param   GATEWAY_INTERFACE       CGI/1.1;
        fastcgi_param   REMOTE_ADDR             $remote_addr;
        fastcgi_param   REMOTE_PORT             $remote_port;
        fastcgi_param   REQUEST_URI             $request_uri;
        fastcgi_param   REQUEST_METHOD          $request_method;
        fastcgi_param   SCRIPT_NAME             $request_uri;
        fastcgi_param   SERVER_ADDR             $server_addr;
        fastcgi_param   SERVER_NAME             $server_name;
        fastcgi_param   SERVER_PORT             $server_port;
        fastcgi_param   SERVER_PROTOCOL         $server_protocol;
        fastcgi_param   SERVER_SOFTWARE         nginx/$nginx_version;

        fastcgi_param   REDIRECT_STATUS 200;
        fastcgi_index  index.php;
}

Но вместо сайта вижу исходник пхп ...
____________________________
С уважением Max ICQ 71006063



_______________________________________________
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.