Wordpress nginx redirect loop

后端 未结 5 537
旧巷少年郎
旧巷少年郎 2020-12-15 09:13

So, yesterday I had a question how to install the wordpress in the \"/root\" directory. I wasn\'t very successful in that one and I forgo\'ed on that one.

So, right

相关标签:
5条回答
  • 2020-12-15 09:49

    I had a similar problem using Nginx as a reverse proxy for Apache.

    After a few hours I found out it was caused by the $_SERVER["REQUEST_URI"] being set to index.php by Nginx instead of the actual url and Wordpress was trying to remove index.php by redirecting to the url without index.php in wp-includes/canonical.php.

    The solution for me is using something like this,

    proxy_pass http://111.111.111.111:8080$request_uri;
    

    So adding the $request_uri fixed it.

    0 讨论(0)
  • 2020-12-15 09:52

    Not the prettiest fix, but removing the redirect filter in your theme functions.php file worked for me.

    remove_filter('template_redirect', 'redirect_canonical');
    

    From the link provided in OP's answer:
    Wordpress did infinite 301 redirect loop

    0 讨论(0)
  • 2020-12-15 09:54

    Finally, found a solution:

    http://www.violato.net/blog/php/88-wordpress-did-infinite-301-redirect-loop

    Hope this will help others that have the same problem as I did.

    Thanks everyone.

    0 讨论(0)
  • 2020-12-15 09:58

    I had a lot of problems when switching from Apache to Nginx in the past, all solved when I purged Apache, which somehow was interfering with Nginx and caused problems to every server. Here is my wordpress configuration for Nginx, according to both Nginx and Wordpress guides for each other:

    server {
        listen 80;
        server_name blog.mysite.com;
    
        root /var/www/wordpress;
        index index.php;
    
        charset utf-8;
    
        location / {
          try_files $uri $uri/ /index.php?$args;
        }
    
        location ~* ^.+\.(ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|rss|atom|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$ {
            access_log off; log_not_found off; expires max;
        }
    
        location ~ \.php$ {
            try_files $uri /index.php;
    
          fastcgi_split_path_info ^(.+\.php)(/.+)$;
            # CHANGE THE LINE ABOVE IF NEEDED
            fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include fastcgi_params;
        }
    }
    

    I didn't even have to change anything in the admin panel when switching servers, it just worked fine.

    0 讨论(0)
  • 2020-12-15 10:02

    In my case, the redirect loop only affected wp-admin pages, so I added at the start of the line

    if (is_admin) remove_filter('template_redirect', 'redirect_canonical');
    

    and still works, plus the redirect canonical keeps doing its job on the front end!

    I hope this helps someone else!

    0 讨论(0)
提交回复
热议问题