Skip to content
View in the app

A better way to browse. Learn more.

Froxlor Forum

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

nginx add_header 'Access-Control-Allow-Origin' - mehrere Domain angeben funktioniert nicht

Featured Replies

Hallo d00p!

Ich möchte den Content-Security-Header "Access-Control-Allow-Origin" mit mehreren Domains setzen. Das geht aber offenbar gar nicht - oder doch? Die Developer-Konsole im Browser sagt "multiple domains not allowed" wenn ich diesen Eintrag einfüge:

add_header Access-Control-Allow-Origin "https://domain.com https://www.domain.com";

Das Blöde ist, dass Skriptaufrufe mit domain.com hardcoded sind, d.h. bei www-Domain Aufruf werden diese von der Content-Security-Policy gekillt.

DIE Lösung wäre es wenn ich eine direkte Weiterleitung von www.domain.com auf domain.com setzen könnte. Dazu müsste ich einen zusätzlichen www-vHost anlegen (momentan läuft nur ein vHost mit www-Alias). Allerdings hatte ich mit dieser Lösung Probleme beim automatischen Update der Lets Encrypt-Zertifikate.

Hab ich mich soweit verständlich ausgedrückt? 😉

Hast Du ev. einen Tipp wie ich das Problem mit Froxlor lösen kann? Einerseits ist das Thema "Access-Control-Allow-Origin multiple Domains nginx" etwas off topic - andererseits nicht, da ich das Problem nur mit Froxlor lösen sollte und nicht etwas zu Fuß schnitzen will.

 

Grüße aus Wien

 

27 minutes ago, chrisiwien said:

Ich möchte den Content-Security-Header "Access-Control-Allow-Origin" mit mehreren Domains setzen. Das geht aber offenbar gar nicht - oder doch? Die Developer-Konsole im Browser sagt "multiple domains not allowed" wenn ich diesen Eintrag einfüge:

Zitat: 

<origin>
Specifies an origin. Only a single origin can be specified. If the server supports clients from multiple origins, it must return the origin for the specific client making the request.

Quelle: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Origin

  • Author

Das hilft mir jetzt nicht weiter. Auf https://developer.mozilla.org/de/docs/Web/HTTP/CORS/Errors/CORSMissingAllowOrigin ist zu lesen dass man auch eine "origin-list" angeben kann:

Zitat

Private APIs sollten niemals "*" verwenden, sondern stattdessen eine spezifische Domain oder eine Liste von Domains. 

Die Referenzseite wurde erst vor kurzem bearbeitet, die Infos scheinen aktuell zu sein. Bloß wo definiert man diese "origin-list"? Wenn man einfach mit Leerzeichen separiert oder mehrere add_header-Anweisungen untereinander einfügt heißt es es darf nur ein Origin definiert werden...

Ja du kannst doch einfach custom header in die eigenen vhost-einstellungen packen wie du möchtest...das ist nicht wo dich froxlor von abhält, kannst du pro domain machen oder in den IPs für alle domains

  • Author

Hm, ev. blicke ich nicht ganz durch... die Header kann ich schon einstellen, Problem ist aber ich kann aber beim "Access-Control-Allow-Origin"-Header nur eine Domain einstellen!

Umgehen könnte ich das wenn ich eine Weiterleitung von www.domain.com auf domain.com OHNE zusätzlichen www-vHost schaffen kann, mit Froxlor. Das wird aber nicht gehen, oder?

Wenn ich das script https://domain.com/script.php aufrufe ABER die Seite über https://www.domain.com betrachte schießt mir die CORS-policy den Aufruf ab.

Hm.

21 minutes ago, chrisiwien said:

Umgehen könnte ich das wenn ich eine Weiterleitung von www.domain.com auf domain.com OHNE zusätzlichen www-vHost schaffen kann, mit Froxlor. Das wird aber nicht gehen, oder?

.htaccess ist dein freund

  • Author

Lach... wenn man im nginx-Rennwagen sitzt eher nicht... der spricht nicht htaksessisch!

naja, mitdenken, dann halt entsprechendes nginx-vhost-schnippsel-pendant dazu in die "eigene vhost-settings" der domain

  • Author

Jo, hab ich ja gemacht. Zumindest für den Access-Control-Allow-Origin-Header.

Ok, also muss ich doch mitdenken 😄 und einen location-Eintrag in den Einstellungen setzen der mir den www-Aufruf auf non-www umleitet, korrekt?

Just now, chrisiwien said:

Ok, also muss ich doch mitdenken 😄 und einen location-Eintrag in den Einstellungen setzen der mir den www-Aufruf auf non-www umleitet, korrekt?

Du kriegst das schon raus...googe "nginx www redirect" o.Ä. - als serveradmin der nginx nutzt sollte das drin sein :)

  • Author

Sicher krieg ist das raus, hab auch schon zig Einträge selbst gemacht. Aber das ist wieder eine neuer Fall, neue Einstellungen. Hör mir zudem lieber zuerst an was Froxlor dazu sagt bevor ich was selber schnitz!

Danke für die Kommunikation, ich versuch das mal. Das muss man mal behirnen, dass durch den gesetzen www-Alias der non-www-vHost aufgerufen wird - und dass ich dann dort die www-domain nochmals verarbeiten kann.

  • Author

Und schon gelöst mit:

if ($host = www.domain.com) {
	return 301 https://domain.com$request_uri;
}

Hast Du ev. dazu was zu sagen? Von wegen "if is evil" bei nginx?

ja evaluierung "on-the-fly" ist immer "evil" für dienste wie nginx und co. Alternativ kannst du z.B. die domain auf "Kein Alias" stellen, dann die www.domain.com separat anlegen und bei domain.com als documentroot einfach https://www.domain.com eintragen - dann macht er da separate vhosts (den einen mit einem reinen redirect) und den anderen dann "normal" (und ohne if)

  • Author

Evil: ok, kann ich mir vorstellen. Da ich das "nebenberuflich" mache bin ich mal zufrieden und lese mich später ein.

Zweiter vHost, ich weiß, aber da hatten wir mal eine Diskussion (https://forum.froxlor.org/index.php?/topic/19573-automatische-verlängerung-von-lets-encrypt-zertifikat/page/3/#comment-43204) bzgl. nicht funktionierendem automatischen Lets Encrypt-Update. Jetzt klappt das, das will ich momentan nimma angreifen.

Danke jedenfalls für die Rückmeldung.

Archived

This topic is now archived and is closed to further replies.

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.