Welcome! Log In Create A New Profile

Advanced

RE: Подскажите по rewrite

Anonymous User
December 21, 2009 10:02AM
Переделал так:

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@hitline.net.ua]
Sent: Thursday, December 03, 2009 3:47 PM
To: nginx-ru@nginx.org
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@nginx.org
http://nginx.org/mailman/listinfo/nginx-ru


_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

Подскажите по rewrite

maxhl December 03, 2009 08:48AM

RE: Подскажите по rewrite

Anonymous User December 21, 2009 10:02AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 305
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready