Nginx: WordPress в качестве подкаталога на маршрутах Rails неправильно

Я испытываю разочарование перенаправления от wordpress / nginx, когда я перехожу к URL-адресу, который не заканчивается на .php. Например, после обновления чего-либо в WordPress, я могу перенаправить на:

http://www.example.com/wp-admin/options-media.php?settings-updated=true # with blog/ ommited 

вместо

 http://www.example.com/blog/wp-admin/options-media.php?settings-updated=true 

Мне очень любопытно узнать, почему это происходит, и экспериментировали с location ~ /blog.* с многочисленными вариациями, которые не имели успеха.

Ниже приведены файлы моего домена и блога nginx conf, я бы очень признателен за любую помощь в этом!

example.com.conf:

 upstream blog { server 127.0.0.1:80; } server { listen 80; server_name www.example.com direct.example.com; root /home/webapps/example/live/current/public; error_log logs/example.com-error.log; access_log logs/example.com-access.log; passenger_enabled on; rails_env production; passenger_min_instances 3; passenger_spawn_method smart; passenger_use_global_queue on; location ~ /blog.* { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_redirect off; gzip on; gzip_min_length 1100; gzip_buffers 4 8k; gzip_proxied any; gzip_types text/plain text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript; if (!-f $request_filename) { #rewrite ^/blog$ /; rewrite ^/blog/(.*)/$ /blog/$1; rewrite ^/blog/(.*)$ /$1; proxy_pass http://blog; break; } } } 

blog.conf:

 server { listen 127.0.0.1:80; server_name blog.example.com; error_log logs/blog-error.log; access_log logs/blog-access.log; location / { root /home/blog; index index.php index.html index.htm; # this serves static files that exist without running other rewrite tests if (-f $request_filename) { expires 30d; break; } # this sends all non-existing file or directory requests to index.php if (!-e $request_filename) { rewrite ^(.+)$ /index.php?q=$1 last; } } location ~ \.php$ { fastcgi_pass localhost:9000; # port where FastCGI processes were spawned fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /home/blog$fastcgi_script_name; # same path as above fastcgi_param QUERY_STRING $query_string; fastcgi_param REQUEST_METHOD $request_method; fastcgi_param CONTENT_TYPE $content_type; fastcgi_param CONTENT_LENGTH $content_length; fastcgi_param SCRIPT_NAME $fastcgi_script_name; fastcgi_param REQUEST_URI $request_uri; fastcgi_param DOCUMENT_URI $document_uri; fastcgi_param DOCUMENT_ROOT $document_root; fastcgi_param SERVER_PROTOCOL $server_protocol; fastcgi_param GATEWAY_INTERFACE CGI/1.1; fastcgi_param SERVER_SOFTWARE nginx/$nginx_version; fastcgi_param REMOTE_ADDR $remote_addr; fastcgi_param REMOTE_PORT $remote_port; fastcgi_param SERVER_ADDR $server_addr; fastcgi_param SERVER_PORT $server_port; fastcgi_param SERVER_NAME $server_name; # required if PHP was built with --enable-force-cgi-redirect # required if PHP was built with --enable-force-cgi-redirect fastcgi_param REDIRECT_STATUS 200; } }