0

我有一个 nginx 服务器 (1.4.1) 在 Wordpress 中运行一个网站。它会自动将 www.mysite.com 重定向到 mysite.com,而无需任何特定规则。如果最初输入的是 www,我希望它停止并保留 www。

您能否检查我的配置并让我知道可能是什么原因?如果我在图像文件上测试它,重定向不会发生,但在 php 文件上它会......

server {
    listen   80;
    server_name www.mysite.com mysite.com;
    access_log /logs/mysite.com/access.log;
    error_log /logs/mysite.com/error.log crit;
    root   /home/sites/mysite.com/;

    location / {
        index index.php;
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        try_files $uri =404;
        include /etc/nginx/fastcgi_params;
        fastcgi_pass    unix:/var/run/php5-fpm.sock;
        fastcgi_index   index.php;
        fastcgi_intercept_errors off;
    }
}

fastcgi_params:

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_FILENAME         $request_filename;
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;

fastcgi_param   HTTPS                   $https;

# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param   REDIRECT_STATUS         200;
4

2 回答 2

1

我认为您的问题不是 nginx,而是 wordpress 配置,请转到 wordpress 设置并确保您的网站 URL 没有 www。查看http://yourdomain.com/wp-admin/options-general.php

于 2013-05-21T06:15:22.153 回答
0

这行不是说它应该将两者都用作您网站的正确地址吗?

server_name www.mysite.com mysite.com;

尝试使用此配置,它将导致任何子域和没有子域的所有流量都转到 www.mysite.com 对应项。

server {
    listen          80;
    server_name     mysite.com *.mysite.com;
    return          301 $scheme://www.mysite.com$request_uri;
 }

server {
    listen          80;
    server_name     www.mysite.com;

    index           index.html;
    root            /home/mysite.com;
}

哦,不要只是复制/过去,将其调整为您的服务器设置。

于 2013-05-21T06:02:02.400 回答