我有一个在发展中(在很完善的WordPress站点mysite.dev
),但是当我把它部署到我的远程服务器( mysite.com
)它抛出了“ 此网页有重定向循环 ”的错误。
我可以在浏览器试图www.mysite.com然后mysite.com然后www.mysite.com一而再,再而加载栏看到,但我不知道这是初步认识与否。
如果我的WordPress的数据库配置是不正确的,我得到的错误建立一个数据库连接信息,但是当一切都正确设置它在这个重新定向环路的东西打破。
我已经在数据库中(改场siteurl
),以反映远程设置( http://mysite.com/wordpress
)。
注:我的WordPress的文件存储在一个文件夹,名为wordpress
在我的根目录以外的wp-config.php
, index.php
和.htaccess
。
有任何想法吗?
的.htaccess内容:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
index.php文件:
<?php
/**
* @package WordPress
*/
define('WP_USE_THEMES', true);
require('./wordpress/wp-blog-header.php');
?>
Answer 1:
我的托管服务器的设置被强制mysite.com以www.mysite.com,这是造成问题。 我把这个设置关闭,一切正常,现在,我仍想知道如何使它与此设置工作开启,但!
Answer 2:
我有完全相同的问题(迁移到新的服务器后重新定向环路)。
但它不与配置值SITEURL和家庭的问题 ,也不是它的.htaccess文件的问题。 我想这一切。 而且它也没有一个关于“WWW”问题添加到URL。
一些期试验研究后,我发现环路是通过向redirect_canonical功能无限调用(在WP-inclue / canonical.php)引起的。 但它不是从WordPress的一个bug。 一些PHP CONFIGS设置$ _ SERVER [“REQUEST_URI”]在一个“错误的方式”当你进入您的根URL。 例如:我的服务器上,当我去http://example.com/的$ _ SERVER [“REQUEST_URI”]设置为“的index.php”,而不是只是“/”这是混淆了redirect_canonical的,因为这个功能总是尝试重定向到它知道一个页面中的“更好”的网址。 并为您的网站的根目录下更好网址为“/”。 我的服务器上,每次redirect_canonical试图重定向到“/”失败,直到无限重定向循环被发现再次尝试。
要纠正这种错误,您可以修改服务器配置-我不personnaly知道该怎么做,但我知道这是可能的-或者,如果你不能改变它,只是在添加此代码自定义插件 :
/**
* avoid redirection loop in redirect_canonical if REQUEST_URI
* contains '/index.php'
**/
/* remove the action set in the hook 'template_redirect' by wordpress */
remove_action('template_redirect', 'redirect_canonical');
/* set a custom action in the hook 'template_redirect' to check REQUEST_URI value */
add_action('template_redirect', 'correct_redirect_canonical');
/* Function to correct the behaviour of redirect_canonical */
function correct_redirect_canonical(){
if(strstr($_SERVER['REQUEST_URI'],'/index.php')===false){
redirect_canonical();
}
}
希望能帮助到你 !
Answer 3:
1.-为“我的wordpress文件都存储在一个文件夹,名为WordPress的”你必须编辑RewriteBase
和RewriteRule
是这样的:
RewriteBase /wordpress/
RewriteRule . /wordpress/index.php [L]
UPDATE
2:尝试清洁所有的cookies。 这个简单的动作(通过萤火虫)有时解决了这个问题对我来说。
更新3
3.-试试这个的index.php在根目录下:
// index.php file in root directory
chdir('wordpress'); // change dir to WP
include 'index.php'; // execute WP with their normal `index.php`
和离开/wordpress
目录如常(与他们的正常的index.php和htaccess的内侧)。
我的意思是不改变正常的任何一点index.php
WP的 ,它是这样的:
<?php
/**
* Front to the WordPress application. This file doesn't do anything, but loads
* wp-blog-header.php which does and tells WordPress to load the theme.
*
* @package WordPress
*/
/**
* Tells WordPress to load the WordPress theme and output it.
*
* @var bool
*/
define('WP_USE_THEMES', true);
/** Loads the WordPress Environment and Template */
require('./wp-blog-header.php');
Answer 4:
请注意,也可以使用CloudFlare的灵活SSL时出现无限重定向问题。 要解决它,你需要安装以下插件:
https://wordpress.org/plugins/cloudflare-flexible-ssl
Answer 5:
您是否使用像一个插件重定向追踪URL变化? 这可能创造了一个循环,将其重定向到mysite.dev/page/和mysite.com/page/到mysite.com mysite.dev。 发生在我面前!
Answer 6:
可以在两个地方一个发生这种错误,在用户侧,或在管理方面。
当它发生在管理端(WP管理员),你会发现,你无法登录。
第1步:使用FTP连接到您的博客,然后导航至您的wp-content /插件/目录和所有的插件下载到桌面上的文件夹。 第3步:还是在你的FTP程序,删除了所有的插件文件夹和PHP文件中的插件目录。 你不想在所有留在此目录中任何东西。 第4步:尝试登录到您的博客。 它应该让你没有问题登录。 访问您的博客的插件部分。 这应该有很多错误,告诉你,每个插件已因错误而停用的加载。 还行吧。 第5步:使用FTP程序,你应该上传所有的插件。 上传完成后,你应该通过一个在WordPress激活每个插件之一,然后访问可湿性粉剂管理员/登录地址,以确保它会通过您通过您的博客登录后第6步:当您激活插件,并开始得到这个再次出错,你会知道哪一个是难辞其咎的。 简单地删除通过ftp该插件,并开始寻找替代的插件使用。
如果这些步骤无法解决您的问题,您应该备份您的所有的WordPress文件,然后删除它们。 你应该将它们上传最新版本的WordPress干净文件和尝试,没有上传主题或插件登录。 您可以上传这些后来一旦你可以登录。
如果继续收到错误,清除与其他浏览器浏览器缓存,测试记录。
如果一切都失败,请联系您的虚拟主机提供商或打开WordPress支持论坛上线
Answer 7:
首先,我只是一个初学者所以......同时,我认为,我可能有一种替代/快捷方式到这个问题。
不用删除每一个插件,然后将其全部重新安装一个接一个的,我建议删去持续插件启动,因为“怨恨问题=最近修改/插件” ......
这只是我的建议。
马尔科·达维德
Answer 8:
虽然我发现这个职位和解决方案的真正有用的,因为这个问题让我疯狂,我花了这么多的时间来实现。 在我的情况发生,因为我感动的文件在同一服务器内,但使用其他域名,并完成所有的配置和更换,我无法查看网页后,得到了这个错误。 在我的托管设置有其设置为domain.ltd提交了首选域(我试图改变它,但最后只剩下它的话),比设置- >通用 WordPress的仪表板我的WordPress地址(URL)“mysite.com”并设置为“www.mysite.com”网站地址(URL)设置一个值,而不www..bum后,现在一切正常。 希望这有助于任何人
Answer 9:
在我的情况,本地 - OPENSERVER。
这个问题出现在地址大写字母。 例如,在站点设置它http://local-Host
,它是大写字母导致问题,因为整个地址被减少为小写字母- http://local-host
,并作为结果$redirect_url
来自不同$requested_url
在canonical.php
Answer 10:
我有同样的问题,答案是.htaccess
文件,并在那里重定向。 看来,主题/插件,我想用自己的代码相似,在WordPress网站的htaccess
。 我通过插件看了一下,发现它引用的代码,并改变了在htaccess
文件。 现在,它的工作原理。
文章来源: Wordpress causing “This webpage has a redirect loop” error remotely