繁体   English   中英

Nginx运行Wordpress错误地将www重定向到非www

[英]Nginx Running Wordpress Redirecting www to non-www by mistake

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

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

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

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;
}

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM