Salı, Ocak 21, 2025

PHP ile Cross-Origin Etkinleştirme

yüksek çözünürlüklü php logosuPin

CDN yada uzak dizinden dosya kullandıran sitelerdeki en büyük sorun tarayıcıların uzak dizin hatası vermesidir. CDN tarafında tuttuğunuz dosyaları kullanıcılara bu hata yüzünden gösterilmez tarayıcı güvensiz gibi görüp kaynağa ulaşmaz bunu çözmek için ise ya Nginx kurallarına ekleme yapmanız gerekir.

Çoğu zaman bu ekleme bile yeterli gelmez yada çalışmaz header bilgisine tanımladığınız uzak dizin kullanımı tanımı geçmez bu gibi durumlarda PHP kullanarak istenilen domain adreslerinden uzak dizini kabul ettirebiliriz.

<?php
/**
 * Created by PhpStorm.
 * User: mertcan
 * Date: 28.11.2015
 * Time: 22:38
 */

// allowed origins
$allowedOrigins = array(
    '(http(s)://)?(www\.)?my\-domain\.com',
    '(http(s)://)?(www\.)?my\-domain\.com',
    '(http(s)://)?(www\.)?my\-domain\.com'
);

if (isset($_SERVER['HTTP_ORIGIN']) && $_SERVER['HTTP_ORIGIN'] != '') {
    foreach ($allowedOrigins as $allowedOrigin) {
        if (preg_match('#' . $allowedOrigin . '#', $_SERVER['HTTP_ORIGIN'])) {
            header('Access-Control-Allow-Origin: ' . $_SERVER['HTTP_ORIGIN']);
            header('Access-Control-Allow-Methods: GET, PUT, POST, OPTIONS, DELETE');
            header('Access-Control-Max-Age: 1728000');
            header('Access-Control-Allow-Headers: Content-Type, Authorization, X-Requested-With');
            break;
        }
    }
}

PHP sayesinde header bilgisine belirttiğiniz originsleri ekleyebilirsiniz birden çok domain tanımlaması yapabilirsiniz. Kullanıcılarınız içeriklerinizi sıkıntısız bir şekilde görebilirler

Your Mastodon Instance