Wordpress nginx重定向循环

Dmi*_*tri 11 php wordpress redirect nginx

所以,昨天我有一个问题如何在"/ root"目录中安装wordpress.我在那个方面并不是很成功,我放弃了那个.

所以,现在wordpress位于" / var/www/wordpress "下(所以它位于单独的文件夹下)文件夹(我使用Ubuntu 12.04 LTS,如果重要的话).

我的问题是,在我配置完所有内容后(一切都像魅力一样)我被重定向到管理面板页面.一切都很好,直到我试图访问博客的那一刻.

我的博客的URL地址是:"blog.mysite.com".这就是我使用NGINX的原因,因为我在一台服务器上有两个不同的应用程序(和环境),我需要区分它们.

所以,事实是:blog.mysite.com/wp-admin(/wp-login.php)工作正常,但是当我访问首页时:blog.mysite.com,它一直告诉我有一个无限重定向循环(301重定向根据nginx访问日志文件).

在管理面板中,我将"WordPress地址(URL)"和"站点地址(URL)"设置为:" http://blog.mysite.com ".将其中任何一个修改为其他内容,例如:" http://blog.mysite.com/wordpress "根本没有帮助!

".htaccess"文件为空,但我使用默认永久链接,所以不应该是一个问题(但是,我不确定).

nginx和apache2根指令都指向"/ var/www/wordpress".如果重要的话,静态文件(css,js)正在工作.

我该如何解决这个问题?任何帮助深表感谢!

先感谢您!

Dmi*_*tri 11

最后,找到了解决方案:

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

希望这能帮助那些和我一样有问题的人.

感谢大家.


Emi*_*ron 7

不是最漂亮的修复,但删除主题functions.php文件中的重定向过滤器对我有用.

remove_filter('template_redirect', 'redirect_canonical');
Run Code Online (Sandbox Code Playgroud)

从OP的回答中提供的链接:
Wordpress做了无限的301重定向循环

  • 碉堡了。40 小时后,我终于有了答案,这是一个奇怪的台词。 (2认同)

luw*_*wes 6

我在使用 Nginx 作为 Apache 的反向代理时遇到了类似的问题。

几个小时后,我发现它是由 Nginx$_SERVER["REQUEST_URI"]设置index.php而不是实际 url 引起的,Wordpress 试图index.php通过重定向到没有index.phpin的 url来删除wp-includes/canonical.php。

我的解决方案是使用这样的东西,

proxy_pass http://111.111.111.111:8080$request_uri;
Run Code Online (Sandbox Code Playgroud)

所以添加$request_uri固定它。


ran*_*alt 2

过去,我从 Apache 切换到 Nginx 时遇到了很多问题,当我清除 Apache 时,所有问题都得到了解决,Apache 不知何故干扰了 Nginx,给每台服务器带来了问题。这是我的 Nginx WordPress 配置,根据 Nginx 和 Wordpress 的相互指南:

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;
    }
}
Run Code Online (Sandbox Code Playgroud)

切换服务器时我什至不需要更改管理面板中的任何内容,它工作得很好。