Audi Presents: Let It Go

Chrome:

„Načítání písma z počátku„ https://example.com “bylo blokováno zásadami sdílení zdrojů mezi zdroji: Na požadovaném prostředku není hlavička„ Access-Control-Allow-Origin “. Origin„ https: // www.example.com 'proto nemá povolený přístup. "

My .htaccess file looks like this: RewriteEngine on RewriteCond %{HTTP_HOST} ^www.example.com [NC] RewriteRule ^(.*)$ https://example.com/$1 [L,R=301,NC] Redirect 301 / https://example.com 

Pak jsem to přidal do dolní části souboru:

Header add Access-Control-Allow-Origin '*' 

... a vymazán stejný problém v mezipaměti.

... pak podle tohoto článku: Načítání písma blokováno zásadami sdílení zdrojů mezi zdroji: Žádné „Access-Control-Allow-Origin“

Přidal jsem tyto řádky a nahradil svou doménu doménou example.com:

  Header set Access-Control-Allow-Origin 'https://example.com'     Header set Access-Control-Allow-Origin 'https://www.example.com'   

Celý můj .htaccess vypadá takto:

RewriteEngine on RewriteCond %{HTTP_HOST} ^www.example.com [NC] RewriteRule ^(.*)$ https://example.com/$1 [L,R=301,NC] Redirect 301 / https://example.com Header add Access-Control-Allow-Origin '*'   Header set Access-Control-Allow-Origin 'https://example.com'     Header set Access-Control-Allow-Origin 'https://www.example.com'   

Nějaká pomoc zde?

  • 1 To Redirect direktiva vypadá na místě ... která buď vyústí ve smyčku přesměrování, ale chybí cílové lomítko na cílové adrese URL (což bude mít za následek chybný požadavek ?!), nebo bude uživatel / požadavek přesměrován na „jiný server“ „takže zbývající směrnice se neprovádějí ?!
  • Ahoj, děkuji za pomoc. Dal jsem lomítko na konec domén v ... example.com, ... www.example.com ... živel. Ale bez létání. Protože mám jako domény www.example.com i example.com, Google s nimi zachází jako se dvěma samostatnými stránkami. Takže jsem přidal soubor .htaccess do kořenového adresáře dokumentu (/var/www/example.com/public_html) přesměruje požadavky na www na example.com. Web je hostován na serveru CentOS 7 s Apache. Zajímavé: Pokud přejdu na example.com, nezobrazí se mi chyba. Stačí www.example.com. Mám zde narazit na problém s přesměrováním?
  • 1 Pravděpodobně odkazujete na https://www.example.com/... v celé své žádosti? Proč máte 2 obaly? Druhý Header set jednoduše přepíše první. (Nicméně, stále jsem na tom uvízl dříve Redirect směrnice - vůbec nevidím, jak to funguje?)
  • To je opravdu dobrá otázka. Myslím, protože jsem chtěl pro případ zahrnout www.example.com i example.com. Článek s číslem, z něhož jsem dostal příklad kódu, neměl přesně takový problém, jaký mám, takže jsem chtěl pokrýt obě domény, které jsou stejným webem (aplikací), pokud jste to mysleli slovem „aplikace“. Také soubor .htaccess (který má odkazovat na www.example.com požaduje přesměrování na doménu example.com a vůbec nefunguje. Tento problém musím ještě vyřešit.

Nastavení dvou Access-Control-Allow-Origin záhlaví nefunguje. Pokud chcete povolit dvě různé subdomény (holá doména a „www“), tato odpověď StackOverflow vám navrhne toto:

 SetEnvIf Origin '^http(s)?://(.+\.)?example\.com$' origin_is=$0 Header always set Access-Control-Allow-Origin %{origin_is}e env=origin_is  

Poté musíte skutečně otestovat, zda funguje. Můžeš použít curl na příkazovém řádku:

$ curl --header 'Origin: https://www.example.com/' --head https://example.com/my-font.woff 

Jak uvádí komentář, váš soubor .htaccess vypadá, že nemůže fungovat. The Redirect 301 pravidlo tam je bezpodmínečné, takže by mělo být přesměrování každého požadavku. Můj odhad je, že se vůbec nepoužívá. Možná upravujete nesprávný soubor. Možná máte nesprávný název souboru. Možná jste ve špatném adresáři. Je také možné, že je Apache nakonfigurován tak, aby nepoužíval .htaccess. Apache umožňuje, aby měl soubor jiný název, pokud existuje konfigurace typu AccessFileName '.config'. Ve výchozím nastavení jsou také deaktivovány. Konfigurace potřebuje AllowOverride směrnice nastavena na něco jako All pro váš adresář.

  • Děkuji vám všem za úžasné odpovědi. Už tu chybu nemám. Problém byl v prohlížeči Chrome, ale / Apache / 2.4.6 (CentOS) OpenSSL / 1.0.1e-fips PHP / 5.4.16. Oprava: (z výše uvedené rady a hostitelské společnosti) jsem v .htaccess vytáhl původní kód a zavolal své hostitelské společnosti. Navrhli mi, abych pro svůj soubor použil níže uvedený kód, který vyřešil chybu: RewriteEngine On RewriteBase / RewriteCond% {HTTP_HOST} ^ www \. (. *) $ [NC] RewriteRule ^ (. *) $ Https: //% 1 / $ 1 [R = 301, L]
  • 1 Tento kód vypadá, jako by pouze přesměroval další domény a subdomény do vaší hlavní domény. Možná jste měli problém s voláním písem pomocí absolutních odkazů v doméně, které se nemusí shodovat s aktuální.

Pracoval pro vás: Charles Robertson | Chcete nás kontaktovat?

užitečné informace