13

所以,昨天我有一个问题,如何在“/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,它一直告诉我有一个无限重定向循环(根据 nginx 访问日志文件进行 301 重定向)。

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

“.htaccess”文件是空的,但我使用的是默认永久链接,所以应该不是问题(但是,我不确定)。

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

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

先感谢您!

4

6 回答 6

15

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

remove_filter('template_redirect', 'redirect_canonical');

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

于 2016-01-14T16:16:05.713 回答
9

最后,找到了解决方案:

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

希望这会帮助其他和我有同样问题的人。

感谢大家。

于 2013-11-15T07:04:40.197 回答
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;

所以添加$request_uri修复它。

于 2016-11-23T09:07:34.030 回答
2

过去从 Apache 切换到 Nginx 时遇到了很多问题,当我清除 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;
    }
}

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

于 2013-11-14T14:33:14.117 回答
2

就我而言,重定向循环仅影响 wp-admin 页面,因此我在行首添加

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

并且仍然有效,加上重定向规范继续在前端工作!

我希望这对其他人有帮助!

于 2016-05-27T23:30:56.050 回答
0

我遇到了这个问题,因为我使用 nginx 转发请求,但 nginx 没有保留 HOST 标头。

一旦我在我的location块下添加了这些值,事情就开始按预期工作。

    # Set proxy headers for the passthrough
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    # Let the Set-Cookie header through.
    proxy_pass_header Set-Cookie;
于 2021-06-23T18:20:43.837 回答