Merhaba, uzak sunucu olarak kullandığım bir domainim var (örn: x1.com/eklenti/) buraya sadece benim kendime ait olan wordpress eklentilemin data.json ve .zip dosyalarını aldığı yer olarak görebilirsiniz. Bu uzak sunucuya ekletilerimin kullanılan domainlere izin veriyorum mesela data.json'da x2.com x3.com x4.com gibi domainler ekli ve onlar benim eklentim üzerinde tasarruf sahibi ve kullanım hakkına sahipler.
Sorunum şu ki uzak suncuda ki /eklenti/ klasörüne erişimi tamamen kapatarak sadece wordpress eklentimin kurulu olduğu x2, x3, x4 .com domainlerine erişim izni vermek istiyorum ancak bunu IP olarak değil sadece domain ile yapmak istiyorum.
Ne yaptıysam bir türlü çözüm bulamadım yapay zeka ile denedim bana index.php, access.php, .htaccess kodları verdi lakin sonuç sıfır 2 gündür bununla uğraşıyorum hosting firmasına da sordum onlarda bunu çözemediler.
.htaccess ile ilgili bir sorunum var
2
●88
- 13-10-2024, 19:19:51
- 13-10-2024, 19:25:52htaccess de gelen requestleri index.php?file={X} karşılayacak şekilde planlarsınız. index.php'de de gelen referrer isteğinden domain kontrolü yapıp file ı açtırabilirsiniz.
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?request=$1 [L,QSA]<?php // Referrer kontrolü $referrer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : ''; $allowed_referrer = 'deneme.com'; // İsteği al $request = isset($_GET['request']) ? $_GET['request'] : ''; if (strpos($referrer, $allowed_referrer) !== false) { // Eğer referrer deneme.com ise dosyayı aç $file_path = __DIR__ . '/' . $request; if (file_exists($file_path)) { // Dosyanın uzantısını al $file_extension = strtolower(pathinfo($file_path, PATHINFO_EXTENSION)); // Content-Type başlıkları, dosya uzantısına göre ayarlanıyor switch ($file_extension) { case 'jpg': case 'jpeg': header('Content-Type: image/jpeg'); break; case 'png': header('Content-Type: image/png'); break; case 'gif': header('Content-Type: image/gif'); break; case 'pdf': header('Content-Type: application/pdf'); break; case 'txt': header('Content-Type: text/plain'); break; case 'html': header('Content-Type: text/html'); break; default: header('Content-Type: application/octet-stream'); // Bilinmeyen dosyalar için varsayılan header('Content-Disposition: attachment; filename="' . basename($file_path) . '"'); break; } // Dosyanın boyutunu ve indirme hızını ayarlamak için içerik boyutu header('Content-Length: ' . filesize($file_path)); // Dosya içeriğini okutup tarayıcıya gönderiyoruz readfile($file_path); exit; } else { // Dosya yoksa hata mesajı göster echo "İstenen dosya bulunamadı."; } } else { // Referrer kontrolü başarısız echo "Yetkisiz istek. Sadece deneme.com üzerinden erişim izni var."; } ?>