неработают rewrite
t4gs
nginx-forum at nginx.us
Fri Apr 11 07:12:19 UTC 2014
Доброе время суток.
После переезда на nginx/1.1.19 + php-fpm неработают правила rewrite.
до этого был .htaccess следующего содержания :
RewriteEngine On
RewriteCond %{HTTP_REFERER} .*google.*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*bing.*$ [NC]
RewriteCond %{HTTP_USER_AGENT} Chrome [NC]
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^(US|CA) [NC]
RewriteCond %{HTTP:Accept-Language} (en|es) [NC]
RewriteRule .* http://site/ [R,L]
После конвертации получился следующий конфиг:
server {
# host IP and port
listen 80;
# domain name
server_name site.com www.site.com;
proxy_connect_timeout 600s;
proxy_send_timeout 600s;
proxy_read_timeout 600s;
# home directory
root /opt/WWWRoot/site;
location / {
charset utf-8;
index index.php index.html;
rewrite_log on;
if ($http_referer ~* ".*google.*$"){
set $redir $1;
break;
}
if ($http_referer ~* ".*bing.*$"){
set $redir $1;
break;
}
if ($http_user_agent ~* "Chrome"){
set $redir $1;
break;
}
if ($geoip_country_code ~* "(US|CA)"){
set $rule_0 1;
break;
}
if ($http_accept_language ~* "(en|es)"){
set $redir $1;
break;
}
if ($redir = $1){
rewrite /.* http://site2.com redirect;
}
try_files $uri $uri/ /index.php;
}
location ~ \.php$ {
# for PHP-FPM over socket
fastcgi_pass unix:/tmp/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
fastcgi_buffer_size 128k;
fastcgi_buffers 256 4k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
fastcgi_send_timeout 600s;
fastcgi_read_timeout 600s;
fastcgi_intercept_errors on;
}
}
Помогите пожалуйста сделать нормальный рабочий конфиг.
Заранее спасибо.
Posted at Nginx Forum: http://forum.nginx.org/read.php?21,249217,249217#msg-249217
Подробная информация о списке рассылки nginx-ru