我使用Drupal8配置错误如下:
受信任的主机设置 未启用 在settings.php中未配置trusted_host_patterns设置。这可能会导致安全漏洞。强烈建议您配置它。
我已经修复了本地错误,将代码置于本地setting.php:
$ settings [' trusted_host_patterns'] = array( ' ^ Drupal的8-2-6.dd $&#39 ;, ' ^本地主机&#39 ;, );
但是我无法在托管setting.php时修复此错误,所以我尝试了不同的尝试,如下所示 (假设sf-我的域名和dr31 -is, 所以上网是www.dr31.sf.com):
$ settings [' trusted_host_patterns'] = array( ' ^ $ www.dr31.sf.com&#39 ;, );
$ settings [' trusted_host_patterns'] = array( ' ^ $ www.dr31.sf.com&#39 ;, );
$ settings [' trusted_host_patterns'] = array( ' ^ $ www.sf.com&#39 ;, );
某些托管设置是否可能阻止其setup.php生效,结果是否会导致可信主机错误?
对于前。设置php.not 644但444的权限,甚至我在644回复到444时也改变了它。
我个人认为这对可信主机错误没有任何影响。 但是,如果我按照与本地主机上相同的模式没有错误,为什么我不能摆脱托管错误?
如何修复可信主机设置的错误?
感谢。
我试图按照建议进行更改(见下文),但它没有修复错误:
答案 0 :(得分:0)
Drupal 8附带了一个默认(示例)设置文件,当您遇到类似这样的事情时,该文件非常有用。
此示例设置文件应位于以下位置:
sites/default/default.settings.php
这个文件通常评论很好,在尝试找出这样的问题时非常有用。
如果您特别关注可信主机模式示例,如果您只希望www.example.com可以访问您的网站,则会以此为例:
$settings['trusted_host_patterns'] = array(
'^www\.example\.com$',
);
这与您说的使用的代码(^www.dr31.sf.com$
)稍有不同,因为URL是通过正则表达式格式化的,您需要使用反斜杠转义句点。
但是,您可能希望可以在www.example.com以及example.com(或其他一些子域)上访问您的网站。如果是这种情况,您需要指定多个这样的网址:
$settings['trusted_host_patterns'] = array(
'^example\.com$',
'^.+\.example\.com$',
);
根据您的说法判断,我认为以下配置会为您解决此问题:
$settings['trusted_host_patterns'] = array(
'^www\.dr31\.sf\.com$',
);
你也可以在这里使用更宽松的检查,但我认为以上是最合适的(因为它听起来并不像你使用Drupal来提供任何其他URL /子域的数据)。 / p>
正在更改的权限与您的问题无关 - 据我了解,Drupal会自动将这些权限重置为相当严格的设置,以确保您的网站安全。
希望有所帮助!
答案 1 :(得分:0)
以下建议的模式没有清除可信主机中的错误:
$ settings ['trusted_host_patterns'] = array(
'^ www.dr31.sf.com $',
);
我尝试了不同的组合,最终找到了有助于消除可信主机错误的解决方案。
我使用的代码并不完全遵循在setting.php中提供的代码,但它在可信主机中清除错误。
我已使用以下代码清除可信主机中的错误:
$ settings ['trusted_host_patterns'] = array(
'^ dr31.sf.com $', );
答案 2 :(得分:0)
对于drupal 9
$settings['trusted_host_patterns'] = [
'^localhost$',
'^192\.168\.00\.52$',
'^127\.0\.0\.1$',
];
我将 settings.php 文件的代码末尾移动了,这很好,它可能适用于所有drupal版本
在 settings.php 文件中有太多注释块(注释块以/ **开头,以* /结尾)。