【问题标题】:webfont does not apear without www没有 www 就不会出现 webfont
【发布时间】:2014-09-07 12:10:26
【问题描述】:

我试图到处寻找答案。我有一个唱歌网站www.hugeone.co.uk。当地址在此链接中(带有 www.)时,一切正常。但是,如果我只输入 hugeone.co.uk webfonts 不会出现,我会收到消息:

跨域请求被阻止:同源策略不允许读取 远程资源在 http://www.hugeone.co.uk/includes/templates/huheone/css/fonts/dirtyheadline-webfont.woff。 这可以通过将资源移动到同一域或 启用 CORS。

我的 .htaccess 文件:

RewriteEngine On

# Don't rewrite any URIs ending with a file extension (ending with .[xxxxx])
RewriteCond %{REQUEST_URI} !\.[a-z]{2,5}$ [NC]
# Don't rewrite any URIs for some, popular specific file format extensions,
#   which are not covered by main file extension condition above
RewriteCond %{REQUEST_URI} !\.(mp3|mp4|h264)$ [NC]

RewriteCond %{REQUEST_URI} !^/editors/ [NC]
# Don't rewrite .settings directory
RewriteCond %{REQUEST_URI} !^/\.settings/ [NC]
# Don't rewrite ajax_bin directory
RewriteCond %{REQUEST_URI} !^/ajax_bin/ [NC]
# Don't rewrite artwork directory
RewriteCond %{REQUEST_URI} !^/artwork/ [NC]
# Don't rewrite bigdump directory
RewriteCond %{REQUEST_URI} !^/bigdump/ [NC]
# Don't rewrite bmz_cache directory
RewriteCond %{REQUEST_URI} !^/bmz_cache/ [NC]
# Don't rewrite catal directory
RewriteCond %{REQUEST_URI} !^/catal/ [NC]
# Don't rewrite catdescr directory
RewriteCond %{REQUEST_URI} !^/catdescr/ [NC]
# Don't rewrite ebay directory
RewriteCond %{REQUEST_URI} !^/ebay/ [NC]
# Don't rewrite feed directory
RewriteCond %{REQUEST_URI} !^/feed/ [NC]
# Don't rewrite fonts directory
RewriteCond %{REQUEST_URI} !^/fonts/ [NC]
# Don't rewrite ftp-uploads directory
RewriteCond %{REQUEST_URI} !^/ftp\-uploads/ [NC]
# Don't rewrite harvest directory
RewriteCond %{REQUEST_URI} !^/harvest/ [NC]
# Don't rewrite invoices directory
RewriteCond %{REQUEST_URI} !^/invoices/ [NC]
# Don't rewrite jobs directory
RewriteCond %{REQUEST_URI} !^/jobs/ [NC]
# Don't rewrite logo directory
RewriteCond %{REQUEST_URI} !^/logo/ [NC]
# Don't rewrite londynek directory
RewriteCond %{REQUEST_URI} !^/londynek/ [NC]
# Don't rewrite phpmyadmin directory
RewriteCond %{REQUEST_URI} !^/phpmyadmin/ [NC]
# Don't rewrite populate directory
RewriteCond %{REQUEST_URI} !^/populate/ [NC]
# Don't rewrite temp directory
RewriteCond %{REQUEST_URI} !^/temp/ [NC]
# Don't rewrite test directory
RewriteCond %{REQUEST_URI} !^/test/ [NC]
# Don't rewrite uploads directory
RewriteCond %{REQUEST_URI} !^/uploads/ [NC]
# Don't rewrite very_secret directory
RewriteCond %{REQUEST_URI} !^/very_secret/ [NC]
# Don't rewrite video directory
RewriteCond %{REQUEST_URI} !^/video/ [NC]
# Handle all other URIs using Zen Cart (its index.php)
RewriteRule .* index.php [QSA,L]

## END CEON URI MAPPING REWRITE RULE

#WEBFONTS

AddType font/ttf .ttf
AddType font/eot .eot
AddType font/otf .otf
AddType font/woff .woff

<FilesMatch "\.(ttf|otf|eot|woff)$">
    <IfModule mod_headers.c>
        Header set Access-Control-Allow-Origin "*"
    </IfModule>
</FilesMatch>

我不知道我还能做什么。

【问题讨论】:

    标签: css .htaccess webfonts


    【解决方案1】:

    如果将所有非WWW 请求重定向到WWW 是一个选项,您可以这样做:

    RewriteCond %{HTTP_HOST} ^hugeone\.co\.uk$ [NC]
    RewriteRule ^ http://www.hugeone.co.uk%{REQUEST_URI} [R=301,L]
    

    在下面添加:

    RewriteEngine On
    # optional you might not have the below in your file.
    RewriteBase /
    

    在您的.htaccess 文件中。

    上述方法的替代方法是使用 .htaccess 为 webfonts 启用 CORS,如下所示:

    <IfModule mod_headers.c>
      <FilesMatch "\.(ttf|ttc|otf|eot|woff|font.css|css)$">
        Header set Access-Control-Allow-Origin "*"
      </FilesMatch>
    </IfModule>
    

    附带说明,最好不要同时使用WWW 和非WWW,因为Google 不喜欢同时使用两者。

    【讨论】:

    • 您好,我已经接受了,但我必须等待才能被允许这样做。我的 .htaccess 中有 Access-control.. 部分,但它不起作用。我只在谷歌上使用 www,但用户不能在没有 www 的情况下输入网址。
    • @PiotrJankowski 是的,当问题是最近的时候,有一个等待时间,谢谢,很高兴它对你有用:)
    【解决方案2】:

    url 和 value 应该相同。

    在这种情况下有两种可能的解决方案。

    1. 将所有非www请求重定向到www

    2. 根据 url 更改基本 href 值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-12-30
      • 1970-01-01
      • 2017-04-05
      • 2016-08-01
      • 2021-03-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多