所以,昨天我有一个问题,如何在"/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)正在工作,如果它很重要的话。
如何解决此问题?任何帮助都非常感谢!
提前谢谢你!
不是最漂亮的修复,但删除主题functions.php
文件中的重定向过滤器对我有用。
remove_filter('template_redirect', 'redirect_canonical');
来自OP答案中提供的链接:
WordPress做了无限的301重定向循环
最后,找到了一个解决方案:
http://www.violato.net/blog/php/88-wordpress-did-infinite-301-redirect-loop
希望这能帮助其他与我有相同问题的人。
谢谢大家。
我在使用 Nginx 作为 Apache 的反向代理时遇到了类似的问题。
几个小时后,我发现这是由于 Nginx 将$_SERVER["REQUEST_URI"]
设置为index.php
而不是实际的 url 引起的,并且 Wordpress 试图通过重定向到没有index.php
wp-includes/canonical.php
的 url 来删除index.php
。
我的解决方案是使用这样的东西,
proxy_pass http://111.111.111.111:8080$request_uri;
所以添加$request_uri
修复了它。
过去从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;
}
}
切换服务器时,我什至不必在管理面板中更改任何内容,它工作正常。
就我而言,重定向循环仅影响 wp-admin 页面,所以我在行首添加了
if (is_admin) remove_filter('template_redirect', 'redirect_canonical');
并且仍然有效,而且重定向规范在前端继续工作!
我希望这对其他人有所帮助!
我遇到了这个问题,因为我使用 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;
这是使用 wordpress docker
的 nginx 解决方案。关键点是将"主机"和"原型"添加到代理中
location / {
try_files $uri @apache;
}
location @apache {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $host;
proxy_pass http://wordpress:80;
}
引用:https://azdigi.com/blog/en/website-tutorials/wordpress-en/how-to-install-wordpress-with-docker-compose-nginx-apache-and-ssl-2/