我想将网站从更改http
为https
。总是。
因此,我相应地配置了我的Apache。现在,当我输入站点的URL(https://steamnet.de)时,它会很好地加载索引站点,但不会加载任何引用的元素(CSS,图像等)。
在我看来,它这样做是因为将base href
设置为,http://steamnet.de/
并且thous在https
那里没有使用。我已经配置了我的Firefox,它不应加载混合内容。
因此,我如何告诉Joomla将其设置base href
为https://steamnet.de
(或完全使网站正常运行ssl
?)
我试图设置全局SSL强制执行的Joomla配置的元素(在德国“SSL erzwingen”,$force_ssl
在configuration.php
),以“一切”,但随后该网站打破了无限的303
错误重定向到自身。(事后303
思考:我很惊讶地找到了一个而不是301
这里。如果有人可以解释我将不胜感激)
(为了完整起见,Laoneo建议了一些无法解决的解决方案,这里是清单)
$live_site
到https
URL。$sef
并$sef_rewrite
有所帮助。apache日志: access.log
91.42.221.000 - - [03/Nov/2013:12:41:25 +0100] "GET / HTTP/1.1" 303 4854 "-" "Mozilla/5.0 (Gecko) Firefox/64"
91.42.221.000 - - [03/Nov/2013:12:41:25 +0100] "GET / HTTP/1.1" 303 516 "-" "Mozilla/5.0 (Gecko) Firefox/64"
91.42.221.000 - - [03/Nov/2013:12:41:25 +0100] "GET / HTTP/1.1" 303 516 "-" "Mozilla/5.0 (Gecko) Firefox/64"
error.log
在访问中不包含任何内容,但是以下几行 reload
[Sun Nov 03 12:41:16 2013] [notice] Graceful restart requested, doing restart
[Sun Nov 03 12:41:16 2013] [error] (9)Bad file descriptor: apr_socket_accept: (client socket)
[Sun Nov 03 12:41:17 2013] [warn] RSA server certificate CommonName (CN) `Angelo Neuschitzer' does NOT match server name!?
[Sun Nov 03 12:41:17 2013] [notice] Apache/2.2.16 (Debian) PHP/5.3.3-7+squeeze17 with Suhosin-Patch proxy_html/3.0.1 mod_ssl/2.2.16 OpenSSL/0.9.8o configured -- resuming normal operations
抱歉,我不认为当前答案是正确的。这个答案会引起黑客攻击并解决问题。下次更新Joomla时,您将不得不更新核心文件,因为它将被覆盖。
实际上,如果我们在getInstance中查看JURI的代码,则可以看到以下内容:
// Determine if the request was over SSL (HTTPS).
if (isset($_SERVER['HTTPS']) && !empty($_SERVER['HTTPS']) && (strtolower($_SERVER['HTTPS']) != 'off'))
{
$https = 's://';
}
else
{
$https = '://';
}
问题是,为什么有些服务器中的$ _SERVER ['HTTPS']显然没有初始化。尽管我无法告诉您原因,但是发现可以正常工作的是,将这些行添加到了.htaccess文件的开头:
<IfModule mod_env.c>
SetEnv HTTPS on
</IfModule>
这样,$ _SERVER ['HTTPS']似乎已初始化,并且Juri :: current将返回我们期望的-以https开头的URL。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句