タイトルは少し誤解を招いていますが、私はより良いものとは思えません。nginx:リダイレクト時にいつも別のホストにリダイレクトする方法
私はCloudFrontの背後にあるnginxサーバーをホストしています。 nginxサーバーはCloudFrontの起源であるorigin.website.com
にアクセスできます。 CloudFrontディストリビューションはwebsite.com
でホストされています。
リダイレクトするたびにorigin.website.com/$uri
ではなくwebsite.com/$uri
にリダイレクトされるようにする方法はありますか?
私はすべての拠点をカバーしようとしているが、私は特定の問題持っています:
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name origin.website.com website.com;
add_header X-server-choice "default";
add_header X-heard-uri "$uri";
root /var/www;
client_max_body_size 200M;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location/{
proxy_pass http://localhost:8080;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
location /blog {
alias /var/www/blog;
index index.php;
try_files $uri $uri/ @site_rewrite;
}
location @site_rewrite {
rewrite ^/blog/(.*)$ /blog/index.php?$1;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}
私はwebsite.com/blog
に行くたびに、それはorigin.website.com/blog/
にリダイレクトします。 site_rewrite
を経由することなく、location /blog
を経由してtry_files $uri $uri/ @site_rewrite
にリダイレクトしているようです。
アイデア?ありがとう!
'ClodFrontの分布CNAMEをwebsite.com'ていますか? –
@DmitryMiksIrはい。ほとんどの場合、それは動作します。それはウェブサイト上の唯一のものである/それがぼやけて –
まあ、私はあなたのPHPのブログによって生成されたこのリダイレクトだと思います。 –