1. Altyapına uygun yolu seç
Apache ve PHP ile sunulan statik HTML sitelerinde referans paketi kullanabilirsin. WordPress için kendi eklentisi, Shopify için mağaza bağlantısı vardır. Next.js, Node.js veya başka özel bir uygulamada aşağıdaki v1 sözleşmesini uygulayan bir sunucu rotası hazırlanır.
PHP bağlantı paketini indir (.zip) · Shopify kurulum rehberi
2. PHP paketini kur
Gereksinimler: HTTPS, PHP 7.4 veya üstü, DOM/XML, Apache 2.4 mod_rewrite ve web kökü dışında yazılabilir özel bir klasör. Paketin README dosyası tam kurulum ve geri dönüş adımlarını içerir.
- Mevcut HTML kaynaklarını, sitemap ve kök .htaccess dosyasını yedekle. Kurulumu önce bir test ortamında dene.
- Paketteki
rampika-connect/klasörünü gerçek web köküne yerleştir. - Web kökünün dışında özel kayıt klasörünü oluştur. Örnek:
/home/hesap/public_htmliçin/home/hesap/.rampika-connect-public_html. Klasör 0700, config ve kayıt dosyaları 0600 izinleriyle korunur. config.example.phpdosyasını bu özel klasöreconfig.phpolarak yerleştir. Gerçek HTTPS origin, yayıncı adı ve kriptografik olarak üretilmiş 64 hex karakterlik anahtarı sunucuda tanımla.ROOT-HTACCESS.txtkurallarını mevcut yönlendirmelerle birleştir. Var olan HTTPS ve canonical yönlendirmelerini silme. Public sayfa izin listesini ve makale şablonunu kendi sitene uyarla.- Ana sayfa, hizmet sayfaları, blog ve sitemap’i normal tarayıcıyla kontrol et. CDN kullanılıyorsa değişikliklerin önbelleğe takılmadığını doğrula.
Referans paket yalnız izin listesindeki public HTML yollarında çalışır. Yönetim, giriş, API ve hukuki sayfalar kapsam dışıdır. Özel kayıt klasörü normal deploy sırasında silinmemeli; düzenli yedeklenmelidir. PHP ve Node kaynak üreticileri için paketteki overlay yardımcılarını kullan. Salt istemci JavaScript’iyle title değiştirmek bu bağlantının yerini tutmaz.
3. Next.js ve diğer sunucularda v1 sözleşmesi
Siteyle aynı origin üzerinde HTTPS POST adresi sun. Örnek: https://siteniz.com/api/rampika-connect. İstek başka adrese yönlendirilmemeli; yanıt Cache-Control: no-store taşımalı. En fazla 256 KiB UTF-8 JSON kabul et. İstek gövdesi {"version":1,"action":"capabilities"} biçiminde başlar.
Başlıklar: X-Rampika-Zaman Unix saniye, X-Rampika-Nonce 32 hex karakter, X-Rampika-Hedef değeri custom ve X-Rampika-Imza 64 hex karakterdir. İmzayı JSON’u yeniden biçimlendirmeden, gelen ham gövdeyle doğrula.
// Sunucuda: 64 hex anahtarın METİN değeri kullanılır.
import { createHmac, timingSafeEqual } from "node:crypto";
const signed = [zaman, nonce, "custom", rawBody].join(".");
const expected = createHmac("sha256", serverSecret)
.update(signed, "utf8").digest();
// Önce imzanın 64 hex karakter olduğunu doğrula.
const received = Buffer.from(signatureHeader, "hex");
const valid = received.length === expected.length
&& timingSafeEqual(received, expected);Bu parça yalnız imza hesabını gösterir; tek başına tam bir alıcı değildir. Zaman farkı en fazla 300 saniye olmalı. Doğrulanan nonce’u 10 dakika süreyle atomik sakla ve yeniden kullanımını reddet; okuma ve yetenek sorguları da nonce tüketir. Anahtar ve işlem kayıtları sunucuda kalır; istemci bileşeni, public ortam değişkeni, tarayıcı depolaması veya loglara konmaz.
| İşlem | Beklenen davranış |
|---|---|
capabilities | Sitenin adresi, protokol sürümü ve gerçekten desteklenen işlemleri bildirir. |
metadata.read | İzinli public sayfanın mevcut başlık ve açıklamasını okur. |
metadata.apply | Tek alanı expectedValue ile karşılaştırıp yazar; önceki ve yazılan değeri saklar. |
metadata.undo | Hedef işlemin alanı hâlâ yazılan değerdeyse yalnız o alanı geri alır. |
article.draft | Sabit makale kimliğiyle özel bir taslak oluşturur; yayınlamaz. |
article.read | Makalenin içeriği, durumu ve güncel sürümünü okur. |
article.publish | expectedRevision aynıysa mevcut taslağı yayınlar. |
article.unpublish | expectedRevision aynıysa makaleyi taslağa alır; silmez. |
Yetenek yanıtı yalnız çalışan özellikleri bildirmeli: metadata.title, metadata.description, article.draft, article.read, article.publish, article.unpublish. Özel bağlantı v1 görsel alt metni veya keyfi dosya/kod yazımı sunmaz.
Her yazmada UUID operationId ve gövde hash’i kalıcı tutulur. Aynı kimlik ve aynı gövde önceki sonucu döndürür; farklı gövde 409 ile reddedilir. Başka bir düzenleme expectedValue veya expectedRevision ile çakışırsa yine 409 döner. Önceki değer, yeni değer ve işlem sonucu tek atomik işlemde saklanır. Belirsiz yanıtı yeni kimlikle yeniden yazmak yerine kayıt okunur.
Makale taslağı herkese açık olmamalı. Yalnız yayınlanmış içerik blog, canonical adres ve sitemap’te yer alır. İzinli HTML: p, h2, h3, ul, ol, li, strong, em, a, blockquote ve br. Script, iframe, inline olaylar, stiller ve görsel etiketleri kabul edilmez. Bağlantılar http(s) veya site içi göreli adreslerle sınırlıdır.
V1 sınırları: başlık 160, açıklama 320, yazar 120, slug 100 ve HTML içerik 180.000 karakter. Yazar etiketi gerçek yayın sorumlusunu gösterir; bağlantı kendiliğinden uzmanlık veya içerik doğruluğu üretmez.
4. Önce oku, uygula, geri al
- İmzalı yetenek sorgusu gerçek site origin’ini ve izinleri döndürmeli. Hatalı imza, eski zaman ve aynı nonce reddedilmeli.
- Bir test sayfasının mevcut SEO alanını oku. Beklenen değeri kullanarak tek alanı değiştir, normal HTML çıktısında doğrula ve geri al.
- Aynı işlem kimliğini tekrar gönder: ikinci bir değişiklik oluşmamalı. Araya elle düzenleme koy: işlem veya geri alma bu değişikliği ezmemeli.
- Özel bir makale taslağı oluştur. Yayından önce URL, blog listesi ve sitemap’te görünmediğini; yayın ve taslağa dönüşün doğru çalıştığını doğrula.
- Normal bir site deploy’undan sonra kayıtların, SEO alanlarının ve yayın durumunun korunduğunu kontrol et.
5. Rampika’da bağlantıyı tamamla
Ayarlar → Site bağlantıları → Özel yazılım bölümünde sunucu adresini ve aynı 64 karakterlik anahtarı gir. PHP paketi için adres https://siteniz.com/rampika-connect/index.php olur. Anahtar kayıttan sonra ekranda tekrar gösterilmez.
Bağlantı doğrulanınca yalnız bildirilen yetenekler açılır. Desteklenen düzeltmeleri elle uygulayabilir; Otopilot planında otomatik düzeltme ve planlı içerik için ayrı izin verebilirsin. Kaynak, gerçek yazar, kota veya kalite kontrolü eksikse otomatik yayın bekler. Günlük kontrol, her gün yayın ya da Google sıralaması garantisi değildir.
Bağlantıyı kesmek erişimi durdurur; daha önce yapılan değişiklikleri kendiliğinden geri almaz. PHP alıcısını kaldırmadan önce özel kayıtları yedekle ve README’deki geri dönüş adımlarını uygula.