2
當我導航到不以.php結尾的網址時,我正在經歷來自wordpress/nginx的令人沮喪的重定向。例如更新的WordPress的事情後,我可能會被重定向到:的Nginx:Wordpress作爲Rails網站路徑上的子目錄不正確
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;
}
}