2013-11-14 49 views
7

所以,昨天我有一个问题如何安装wordpress在“/根”目录。我并不是那么成功,我放弃了那个。WordPress的nginx重定向循环

所以,现在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)正在工作,如果它很重要。

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

预先感谢您!

+0

你知道了吗? – ark

+0

@ark Hi。是。事实证明,我们的WP安装有问题,所以它不是所有的nginx问题:( )如果你有类似的东西,尝试重新安装或安装一个干净的博客旁边现有的博客,看看它是否工作之前你开始触摸nginx。 – Dmitri

回答

1

过去我从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; 
    } 
} 

我甚至没有切换服务器时更改管理面板任何东西,它只是正常工作。

+0

我的VPS上有的所有东西:PHP(php5,php5-mysql,libs),Apache2 - 是全新安装。 它们预装在VPS上,但我清除了它们,国产全新安装。 所以,我显然不明白是什么在那里,为什么这种重定向摆在首位出现(如果考虑到管理面板工作完美) 但是,非常感谢! 去顺便说一句,我不使用“fastcgi”指令,我只是代理传递给它Apache: proxy_pass 127.0.0.1:8081(我自己定义了端口) – Dmitri

8

最后,找到了解决办法:

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

希望这将帮助其他像我一样有同样的问题。

谢谢大家。

+0

这不再是加载。如果您有解决方案,您可以编辑您的答案并直接添加它们吗?谢谢 – Arda

+1

链接大纲的Emile的回复包括在这里。糟糕的格式,但如果它的编辑,添加以下到您的主题的functions.php文件: remove_filter('template_redirect','redirect_canonical'); – DevOops

5

不是最漂亮的修复程序,但删除了主题functions.php文件中的重定向过滤器。

remove_filter('template_redirect', 'redirect_canonical'); 

从OP的回答中提供的链接:
Wordpress did infinite 301 redirect loop

+0

圣洁的废话。 40小时后,我终于有了一个答案,这是一个怪胎'线。 – osoblanco

+0

欢迎来到wordpress修补! –

1

在我的情况下,重定向循环不仅影响WP-管理页面,所以我加在该行的开始

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

仍然有效,再加上重定向规范在前端不断完成它的工作!

我希望这可以帮助别人!

1

我有一个类似的问题,使用Nginx作为Apache的反向代理。

了几个小时,我发现它是由$_SERVER["REQUEST_URI"]造成Nginx的,而不是实际的URL和WordPress被设置为index.php后,试图通过在wp-includes/canonical.php重定向到URL不index.php删除index.php

的解决方案,我用这样的事情,

proxy_pass http://111.111.111.111:8080$request_uri; 

所以加入$request_uri固定它。