我的 nginx 重定向设置不起作用

我的 nginx 重定向设置不起作用

我的网站出了问题。每当我尝试访问我的网站时,它都不会重定向。

这意味着当我输入 financenectar.com 的 URL 时,它会在 financenectar.com 打开我的网站,但不会重定向到 www.financenectar.com。

还有一件事,当我输入 www.financenectar.com 时它甚至不起作用。

当前 nginx 配置

server {
        listen   80; ## listen for ipv4; this line is default and implied
        #listen   [::]:80 default ipv6only=on; ## listen for ipv6

        root /var/www/financenectar/;
        index index.php index.html index.htm;

        # Make site accessible from http://localhost/
        server_name financenectar.com;

        location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to index.html
                try_files $uri $uri/ /index.php?q=$uri&$args;
                # Uncomment to enable naxsi on this location
                # include /etc/nginx/naxsi.rules
        }

        location /doc/ {
                alias /usr/share/doc/;

        location /doc/ {
                alias /usr/share/doc/;
                autoindex on;
                allow 127.0.0.1;
                deny all;
        }

        error_page 404 /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
                root /usr/share/nginx/www;
        }

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        location ~ \.php$ {
        #       fastcgi_split_path_info ^(.+\.php)(/.+)$;
        #       # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
                try_files $uri =404;
        #       # With php5-cgi alone:
        #       fastcgi_pass 127.0.0.1:9000;
        #       # With php5-fpm:
                fastcgi_pass unix:/var/run/php5-fpm.sock;
                fastcgi_index index.php;
                include fastcgi_params;
        }
}

请让我知晓这些变化。

答案1

您没有任何包含 www.financenectar.com 的服务器块。

我为您提供了几种可行的解决方案。

1. 解决方案 - 只需将域名添加到 server_name

更改以下行

server_name financenectar.com;

对此

server_name financenectar.com www.financenectar.com;

这将使 nginx 配置适用于两个域,但没有重定向。

2. 解决方案 - 添加新的虚拟主机以进行重定向

添加一个具有以下内容的新服务器块。

server {
  listen 80;
  root /var/www/financenectar/;
  server_name www.financenectar.com;

  location / {
    return 301 http://financenectar.com$request_uri;
  }
}

这会使所有对 www.financenectar.com 的请求重定向到 financenectar.com。如果您希望反过来,只需切换server_name每个服务器块中的参数,并将return上述配置中的 -parameter 更改为以下内容。

    return 301 http://www.financenectar.com$request_uri;

相关内容