css
  • wordpress
  • .htaccess
  • ssl
  • fonts
  • 2016-09-22 56 views 0 likes 
    0

    在这里,我有CSS启用SSL图标字体显示不正确,如果该网站的HTTP版本被称为后

    .social li a.facebook:before { font-family: 'icomoon'; content: "\f09a"; } 
    

    现在定义的图标字体如果我叫http://www.somewebsite.com,而不是图标与矩形将显示内容F09A。在源代码(按Ctrl + U)的CSS被包括这样

    <link rel='stylesheet' id='font-css' href='http://www.somewebsite.com/wp-content/themes/sometheme/css/iconfont.css?ver=4.3.6' type='text/css' media='all' /> 
    

    在该CSS的字体被包括相对

    @font-face { 
        font-family: 'icomoon'; 
        src:url('../fonts/icomoon.eot?-m6u1i9'); 
        src:url('../fonts/icomoon.eot?#iefix-m6u1i9') format('embedded-opentype'), 
         url('../fonts/icomoon.woff') format('woff'), 
         url('../fonts/icomoon.ttf') format('truetype'), 
         url('../fonts/icomoon.svg?-m6u1i9#icomoon') format('svg'); 
        font-weight: normal; 
        font-style: normal; 
    } 
    

    的WordPress的站点的URL被设定为https。如果我点击检查器中的http样式表链接,我会重定向到css的https版本。在Chrome中我得到以下调用网页的HTTP版本后:

    从原点“https://www.somewebsite.com”字体已经从 加载由跨来源资源共享政策阻止:无 “访问控制 - 允许 - Origin'标题出现在请求的 资源中。 'http://somewebsite.com'因此不允许 访问。

    看来,有两点不同:

    • 的http和https
    • WWW VS加www

    调用该网站的HTTPS版本工作正常。这里的字体显示正确。

    有没有办法让一个http和一个https版本运行同一个站点?或者我必须通过.htaccess开始强制https?

    一些旁注:

    • 调用https://somewebsite.com导致不安全的连接警告
    • 调用www.somewebsite.com重定向到https // www.somewebsite.com

    是证书只适用于www.somewebsite.com?

    编辑:

    现在我使用重定向在域级别。

    http://somewebsite.com现在重定向到https://www.somewebsite.com http://www.somewebsite.com被重定向到https://www.somewebsite.com

    似乎暂时工作。

    回答

    1

    是的,httpd.conf <VirualHost>项允许您同时运行https://www.example.com(在端口443上)和http://www.example.com(在端口80上)。你甚至可以将它们指向相同的物理磁盘位置(可能不是最好的想法)。

    你会想要永远提供“www”或从不提供。 (即重定向到“www.yoursite.com”,如果www没有发送,否则像这样的东西会不断弹出

    在HTML/CSS中,你可以指定“//somefile.example”来表示你正在制作绝对路径参考,但要保留使用的是相同的方案

    您可以检查您的证书,看看它通过有效期为在linux:

    openssl x509 -noout -in /yourcertfile -subject -issuer -dates 
    

    你要确保CN=(通用名称)匹配您的网络服务器的主机名称,包括任何子域名(即“www”)

    +0

    重定向有多种方式:'.htaccess',域提供程序配置,...哪一个重要? – testing

    1

    您不能混用http和https内容。您需要使用https发送所有内容,并使用您需要设置标头以允许访问的其他域中的资源。

    See CORS

    可以在.htaccess中的源服务器上使用。

    Header set Access-Control-Allow-Origin: http://www.somedomain.com 
    

    该证书似乎只适用于www。所以你需要总是使用www和https。 www.example.comexample.com是2个不同的域。 www是一个子域名。

    +0

    永远不要'标头设置访问控制允许来源“*”'除非它只是为了快速测试。这会打开[XSS](https://www.owasp.org/index.php/Cross-site_Scripting_(XSS))漏洞。 –

    +0

    @GraemeWicksted他可以专门使用该域或域。但是如果需要使用其他领域的资产,他必须这样做。直接从w3 https://www.w3.org/wiki/CORS_Enabled –

    +0

    有趣的是,http和https的组合来自哪里。 – testing

    相关问题