ベストプラクティス に従って、www.example.com
をexample.com
にリダイレクトする非常に基本的なnginxセットアップがあります。これは機能し、Tor Firefoxブラウザで http://www.idorecall.com/blog に移動すると、アドレスバーのURLが http://idorecall.com)に更新されます。/blog 。
ただし、Chrome、Firefox Portable、IEおよびOpera Portable)のアドレスバーのURLは変更されません。
変更されたdefault
nginx構成は次のとおりです。 nginx.conf以外にnginx設定ファイルはありません。
server {
server_name www.idorecall.com;
return 301 $scheme://idorecall.com$request_uri;
}
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
index index.html index.htm index.nginx-debian.html;
server_name idorecall.com;
location / {
try_files $uri $uri/ =404;
}
location /blog {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_Host;
proxy_pass http://127.0.0.1:2368;
}
}
wget -S
、 http://www.rexswain.com/httpview.html 、browsershotsなどは301の「永続的に移動」リダイレクトを正しく検出します。ただし、ほとんどのブラウザはwwwURLを保持します。超イライラする。 FirefoxとOperaは最初からインストールされているため、wwwドメインの履歴ヒットはありません。
GitHubは、すべてのブラウザでhttp(s)://www.github.comを https://github.com にリダイレクトします。彼らはこれをどのように行うのですか?
IPv6を使用しているため(そしてkrisFRは表示されていないため)、リダイレクトは表示されません。リダイレクトを含むnginx server
ブロックは、IPv4接続にのみ使用されます。
server
ブロックが listen
ディレクティブ を省略した場合、デフォルトでlisten *:80
になり、すべてのIPv4アドレスのみをリッスンします(listen 80
と同等です)。したがって、このserver
ブロックは、定義されたdefault_server
にフォールスルーするIPv6接続には使用されません。
この問題を解決するには、適切なlisten
ディレクティブを追加して、IPv4とIPv6の両方でリッスンします。
server {
listen 80;
listen [::]:80;
server_name www.idorecall.com;
return 301 $scheme://idorecall.com$request_uri;
}