WordPress çoklu site: Alt alan adı ve alt klasör, 2 yapı
WordPress çoklu site (WordPress Multisite), tek bir WordPress kurulumuyla birden fazla siteyi bir ağda toplayıp yönetmenizi sağlayan bir özelliktir. Nginx + Apache yapılandırmalı bir WordPress'te ağ kurulumu ekranından çoklu siteyi açtık, bir alt site ekledik ve menü yollarıyla yapılandırma dosyalarına giren satırları kontrol ettik.
1️⃣ WordPress çoklu site ve Ağ yöneticisi
Çoklu sitede ağdaki tüm siteler tek bir WordPress kurulumunu birlikte kullanır. Çekirdek dosyalar, eklentiler ve temalar da paylaşıldığı için sunucuda her site için ayrı bir WordPress klasörü oluşmaz.
Her site için ayrı oluşan şeyler veritabanı tabloları ve ortam yükleme klasörüdür; yalnızca kullanıcı tabloları tüm ağ tarafından paylaşılır. İlk site mevcut [/wp-content/uploads/] klasörünü, sonraki siteler ise [/wp-content/uploads/sites/] altındaki site numarası klasörünü kullanır.
Tüm ağı yöneten kullanıcı süper yöneticidir (Super Admin). Ağ yöneticisi ekranları ağ oluşturulduktan sonra gelir ve yalnızca süper yöneticilere gösterilir.
Kullanıcılar ağ hesabı olarak oluşturulur, ancak bir siteye erişebilmek için o sitede bir rol almaları gerekir. Site yöneticilerinin yetkileri de daralır; tema ve eklenti kurmayı ve diğer kullanıcıların profillerini düzenlemeyi yalnızca süper yönetici yapabilir.
Aşağıdaki diyagramda tek bir kurulumun ağ üzerinden birden fazla siteye nasıl ayrıldığını ve adres yöntemine göre site adreslerini görebilirsiniz.
2️⃣ Alt alan adı ile alt klasör farkı: Adres biçimi ve seçim sınırları
Ağı kurarken site adresi yöntemini alt alan adı ve alt klasör arasından seçersiniz. Alt alan adı site1.example.com, alt klasör (alt dizin) ise example.com/site1 biçiminde bir adrestir.
| Öğe | Alt alan adı | Alt klasör |
|---|---|---|
| Site adresi | site1.example.com | example.com/site1 |
| Resmî belgelerdeki adı | Alan adı tabanlı (domain-based) | Yol tabanlı (path-based) |
| Sunucu tarafında hazırlık | Alt alan adlarını DNS'te ve sunucuda WordPress kurulum klasörüne yönlendirme | Kalıcı bağlantılar çalışıyorsa ek ayar yok |
| Kullanıcılar kendi sitelerini oluşturduğunda | Joker alt alan adı gerekir | Ek koşul yok |
| Seçilemediği durumlar | WordPress adresinde bir yol olduğunda ya da adres localhost veya IP adresi olduğunda | Bir aydan uzun süre önce yayımlanmış yazıları olan siteler |
| Ana sitenin yazı adresi | Değişiklik yok | Yazı adresinin önüne /blog/ eklenir |
Alt klasör yönteminde kalıcı bağlantıların çalıştığı bir sunucuda ayrıca ayarlanacak bir şey yoktur, ancak bir aydan uzun süre önce yayımlanmış yazıları olan bir sitede bu yöntem seçilemez. Bu sınır, mevcut yazı adresleriyle yeni site adreslerinin çakışmasını önlemek içindir ve bu tür siteler alt alan adı yöntemiyle kurulur.
Alt klasör ağındaki ana sitenin yazı adreslerine [/blog/] eklenir. Bu yapı, adreslerin alt site adresleriyle çakışmaması içindir ve sayfa adreslerine eklenmez.
Bir kez seçilen yöntemi sonradan değiştirmek birkaç adım gerektirir. Resmî belgelere göre yalnızca [SUBDOMAIN_INSTALL] değerini ve yeniden yazma kurallarını değiştirmek mevcut site adreslerini taşımaz; DNS ve sertifikaların da ayrıca ayarlanması gerekir.
3️⃣ Ağ kurulumundan önce hazırlık: Yedekleme, kalıcı bağlantılar ve sunucu koşulları
Ağ kurulumu mevcut sitenin dosyalarını ve veritabanını değiştiren bir işlemdir; bu yüzden resmî belgeler, yeni kurulmuş bir site değilse önce yedek almanızı önerir.
Veritabanını ve dosyaları yedekleyin, kalıcı bağlantıların çalıştığını kontrol edin, ardından etkin tüm eklentileri devre dışı bırakın. Eklentileri ağ oluşturulduktan sonra yeniden etkinleştirin.
WordPress'i kendi klasöründen çalışacak şekilde taşımayı planlıyorsanız bunu çoklu siteyi etkinleştirmeden önce bitirin. Alt alan adı yönteminde www adresi kullanıyorsanız [WordPress adresi (URL)] ile [Site adresi (URL)] değerlerini aynı yapın ve alan adı değişikliğini de kurulumdan önce tamamlayın.
WordPress adresinde :80 veya :443 dışında bir bağlantı noktası numarası varsa ağ oluşturulamaz.
Sunucunun çoklu site için yeniden yazma kurallarını işleyebilmesi gerekir; Apache için mod_rewrite gereklidir.
Nginx + Apache yapılandırmasında Nginx istekleri Apache'ye iletir ve Apache .htaccess dosyasını okur. .htaccess dosyasını ağ kurulumu ekranında gösterilen kurallarla değiştirince alt site adresleri açıldı; Nginx tarafına ayrıca bir kural eklemedik.
Yalnızca Nginx kullanan sunucularda WordPress yeniden yazma kurallarını oluşturmaz; bu yüzden resmî belgelerdeki Nginx ayarlarını sunucu yapılandırma dosyasına doğrudan eklemeniz gerekir.
Paylaşımlı barındırma gibi sunucu ayarlarını kendiniz değiştiremediğiniz ortamlarda joker alt alan adı gibi koşulları barındırma şirketiyle görüşmeniz gerekir (resmî belgelere göre).
4️⃣ Ağ kurulumu adımları
wp-config.php dosyasına eklenen [WP_ALLOW_MULTISITE] sabiti yalnızca [Araçlar] › [Ağ kurulumu] menüsünü gösterir; tek başına çoklu siteyi etkinleştirmez. Ağ, o ekranda kurulduktan ve ekranda çıkan satırlar wp-config.php ile .htaccess dosyalarına eklendikten sonra etkin olur.
wp-config.php dosyasını açın ve [WP_ALLOW_MULTISITE] değerini true olarak tanımlayan satırı düzenlemeyi bitirme yorumunun üstüne ekleyin. Düzenlemeyi bitirme yorumu /* That’s all, stop editing! Happy publishing. */ satırıdır; kaydettikten sonra tarayıcıyı yenileyin.
define( 'WP_ALLOW_MULTISITE', true );Yenilediğinizde [Araçlar] menüsünde [Kişisel verileri sil] öğesinin altına [Ağ kurulumu] eklenir ve bu menüye tıklayınca [Bir WordPress siteleri ağı oluşturun] ekranı açılır.

Alt klasöre kurulmuş WordPress'te adres yöntemini seçme alanı olmadan yalnızca [Alt klasör kurulumu] satırı gösterilir. O satırdaki metin [Kurulumunuz bir klasörde olduğu için WordPress ağınızdaki siteler de alt klasörler kullanmalılar.] şeklindedir.
[Ağ başlığı] ile [Ağ yönetimi e-posta adresi] alanlarını kontrol edip [Kur] düğmesine basın.
Resmî belgelere göre adres yönteminin seçilebildiği kurulumlarda alt alan adı seçilirse joker DNS uyarısı gösterilir ve bu koşul yalnızca kullanıcıların kendi sitelerini oluşturduğu ağlarda gerekir.
Kurulumdan sonraki ekranda o siteye göre hazırlanmış wp-config.php satırları ve .htaccess kuralları gösterilir. İki dosyayı yedekleyin, satırları wp-config.php dosyasında [WP_ALLOW_MULTISITE] satırının altına yapıştırın ve .htaccess dosyasındaki mevcut WordPress kurallarını yenileriyle değiştirin.

Kurulumdan sonraki ekrandaki açıklamada düzenlemeyi bitirme yorumu yönetim ekranının diline çevrilmiş olarak gösterilir, ancak wp-config.php içindeki yorum İngilizce kalır.
wp-config.php dosyasına eklenen satırlar, [MULTISITE] ve [SUBDOMAIN_INSTALL] dahil altı sabittir. [SUBDOMAIN_INSTALL] değeri alt alan adında true, alt klasörde false olur.
[DOMAIN_CURRENT_SITE] ve [PATH_CURRENT_SITE] sabitlerinde o sitenin alan adı ve kurulum yolu bulunur. Aşağıdaki satırlar, example.com kök dizinine alt klasör yöntemiyle kurulmuş bir sitenin satırlarıdır.
define( 'MULTISITE', true );
define( 'SUBDOMAIN_INSTALL', false );
define( 'DOMAIN_CURRENT_SITE', 'example.com' );
define( 'PATH_CURRENT_SITE', '/' );
define( 'SITE_ID_CURRENT_SITE', 1 );
define( 'BLOG_ID_CURRENT_SITE', 1 );Aynı durumda .htaccess dosyasındaki WordPress kuralları aşağıdakilerle değiştirilir ve [RewriteBase] satırında kurulum yolu bulunur.
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]İki dosyayı kaydettikten sonra ekrandaki [Oturum aç] bağlantısıyla yeniden giriş yapınca yönetim çubuğundaki [Sitelerim] altında [Ağ yöneticisi] belirir. Giriş yapılamazsa tarayıcı önbelleğini ve çerezleri silip yeniden giriş yapın.

[Ağ yöneticisi] içinde Başlangıç, Siteler, Kullanıcılar, Temalar, Eklentiler ve Ayarlar olmak üzere altı menü vardır; [Siteler] öğesine tıklayınca ağdaki sitelerin listesi açılır.

Alt siteler, liste başlığının yanındaki [Site ekle] ya da soldaki [Siteler] › [Site ekle] üzerinden eklenir.

[Site adresi (URL)] alanına yalnızca küçük harf, rakam ve kısa çizgi girilebilir; [Yönetim e-posta adresi] veritabanında yoksa yeni bir kullanıcı oluşturulur.
Bir alt site ekleyince yükleme klasöründe [sites/2] klasörü oluştu, veritabanına da [wp_2_] gibi önekten sonra site numarası gelen 10 tablo eklendi.
Alt sitenin kalıcı bağlantıları ana sitenin ayarlarını izlemez; yıl, ay, gün ve yazı adını içeren varsayılan yapıyla başlar. Bu yüzden alt sitenin kalıcı bağlantı ayarlarında ayrıca belirlenir.
Aşağıdaki simülatörde [Araçlar] › [Ağ kurulumu] adımından [Site ekle] adımına kadar olan yolu sırayla tıklayarak deneyebilirsiniz.
네트워크 설치 절차에 오신 것을 환영합니다!
아래의 정보를 채우고 워드프레스 사이트의 네트워크를 만들 수 있습니다. 다음 단계에서 구성 파일을 만들 것입니다.
다음 단계를 완료하여 사이트의 네트워크 만들기 기능을 활성화하세요.
- /var/www/html/wp/의 wp-config.php파일에 /* 그게 다입니다. 편집을 멈추세요! 즐겁게 발행하세요. */행 위에 다음을 추가합니다:wp-config.php에 대한 네트워크 환경설정 규칙define( 'MULTISITE', true );define( 'SUBDOMAIN_INSTALL', false );define( 'DOMAIN_CURRENT_SITE', 'example.com' );define( 'PATH_CURRENT_SITE', '/wp/' );define( 'SITE_ID_CURRENT_SITE', 1 );define( 'BLOG_ID_CURRENT_SITE', 1 );
- 다른 워드프레스 규칙을 교체하는 /var/www/html/wp/의 .htaccess 파일에 다음을 넣습니다:.htaccess에 대한 네트워크 환경설정 규칙RewriteEngine OnRewriteRule .* – [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]RewriteBase /wp/RewriteRule ^index\.php$ – [L]# add a trailing slash to /wp-adminRewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]RewriteCond %{REQUEST_FILENAME} -f [OR]RewriteCond %{REQUEST_FILENAME} -dRewriteRule ^ – [L]RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]RewriteRule . index.php [L]
이 단계를 완료하고나면, 네트워크를 활성화하고 구성합니다. 다시 로그인해야 합니다.
위의 이메일 주소가 데이터베이스에 없으면 새 사용자를 만들 것입니다.
비밀번호를 설정하는 사용자 이름과 링크를 이 이메일 주소로 보낼 것입니다.
5️⃣ Çoklu sitenin uygun olmadığı durumlar
Çoklu site, bölgesel siteler gibi tema ve eklentilerin paylaşıldığı, içeriğin ise ayrı yönetildiği durumlara uygundur. Siteler arasında veri veya kullanıcıların yakından paylaşılması gerekiyorsa resmî belgeler çoklu sitenin en iyi yöntem olmayabileceğini belirtir.
Yalnızca tasarımın farklı görünmesi gerekiyorsa bunu tek bir sitede tema veya stil dosyası değiştiren bir eklentiyle çözebilirsiniz. Her kullanıcı grubunun yalnızca farklı bilgiler görmesi gereken durumlar da yetkileri ve menüleri değiştiren eklentilerle tek sitede halledilebilir.
Kullandığınız eklentileri de önceden kontrol edin. Eklenti dizinindeki her eklenti çoklu sitede çalışmaz; bu yüzden resmî belgeler desteği eklenti sayfasından veya geliştiriciden kontrol etmenizi önerir.
🔢 SSS & önerilen içerikler
Sunucu
WordPress htaccess temel ayarları
Normal siteler ve çoklu site için temel .htaccess kurallarını ayrı ayrı toplayan yazı.
SEO
Alt alan adı VS alt klasör
Alt alan adı ile alt klasörden hangisinin SEO için daha avantajlı olduğunu karşılaştıran yazı.
Ayarlar
WordPress kalıcı bağlantıları ve kısa isimler
Her alt site için ayrı belirlenen kalıcı bağlantı yapısını ve kısa isimleri açıklar.
ℹ️ Satış ortaklığı bildirimi
Bu sitenin içeriklerinde satış ortaklığı bağlantıları bulunur. Bir ziyaretçi bu bağlantılar üzerinden ürün veya hizmet satın alırsa bu site satıcıdan komisyon alır. Bu süreçte alıcının ödediği tutar (kampanya indirimlerinde tutar düşer↓) artmaz. Yayımlanan fiyat, indirim ve stok bilgileri yazının yazıldığı zamana aittir ve gerçek durumdan farklı olabilir; bu yüzden satın almadan önce son bilgiyi satıcıdan kontrol etmenizi rica ederiz. Ürünler kendi ölçütlerimize göre seçilir ve değerlendirilir; komisyon alınıp alınmaması tanıtım sırasını veya değerlendirme içeriğini etkilemez.