我刚刚将Drupal移动到我的本地服务器,我忘了禁用安全页面。
现在我无法访问管理页面,因为该网站会切换到HTTPS。
如何禁用它?
答案 0 :(得分:21)
在settings.php文件中:
$conf['securepages_enable'] = FALSE;
这将覆盖数据库设置。
在sites/example.com/settings.php
中,将此行保留,然后它将使用数据库中的任何值。
答案 1 :(得分:6)
如果您正在使用drush,您可以启用Secure Pages模块,只需关闭模块自己的配置中的复选框,如:
drush vset securepages_enable 0
这将停止重定向。
如果需要,您也可以更改网址,如下所示,但上述情况通常就足够了。
drush vset securepages_basepath http://nominet.dev
drush vset securepages_basepath_ssl http://nominet.dev
我正在运行Drupal 7顺便说一下,所以YMMV,但在上面的回答之后,似乎是一个简单的基于drush的解决方案。
答案 2 :(得分:5)
我在不禁用模块的情况下完成它的方法是使用SQL来更改变量设置。首先备份数据库(如果你将分号放在错误的位置;在命令行上进行更改之前,请先删除始终备份数据库),然后在数据库上运行以下SQL: / p>
UPDATE variable SET value = 's:1:"0";' WHERE name = 'securepages_enable';
然后:
DELETE FROM cache;
DELETE FROM cache_page;
您需要这两行才能清除缓存,否则变量可能会暂停一段时间。
答案 3 :(得分:2)
如果您安装了Drush:
drush dis -y securepages
答案 4 :(得分:2)
我知道这个问题很老了,已经回答了几次,但是还有另外一个选项尚未提出。
你可以完全禁用它:
// Disable SecurePages completely.
$conf['securepages_enable'] = FALSE;
并更改settings.php以根据某些上下文强制执行HTTPS,例如:
if (isset($_SERVER['environment'] && $_SERVER['environment'] == 'staging')) {
$conf['securepages_basepath'] = 'http://staging.example.com';
$conf['securepages_basepath_ssl'] = 'https://staging.example.com';
} else if (isset($_SERVER['environment'] && $_SERVER['environment'] == 'production')) {
$conf['securepages_basepath'] = 'http://www.example.com';
$conf['securepages_basepath_ssl'] = 'https://www.example.com';
} else {
// We're on dev or some other server instance where SSL isn't needed.
$conf['securepages_enable'] = FALSE;
}
这只是一个示例,但它对我们来说是一种有用的方式来管理存在于开发服务器,QA服务器和生产服务器上的站点,我们希望跟踪版本控制中的settings.php更改而不必改变每个环境中的事物。
答案 5 :(得分:1)
您可以通过数据库直接禁用该模块。只需进入system
表,在name
列下查找您的模块,然后将status
字段设置为零。