WordPress Subdirectory ve Subdomain Kullanımı
Wordpres kurulumu aşamasında tercih edebileceğiniz pek çok yöntem olduğundan daha önce bahsetmiştim. Softaculous ve benzeri uygulamalar üzerinden de elbette hızlı bir şekilde kurulum gerçekleştirilebilir.
Bu durumda ilgili yönergeler içerisinde kurulumun gerçekleştirileceği dizin/klasör için alan olduğunu da görebilirsiniz.

wget
veya curl
ile WordPress1 ya da GitHub2 üzerinden indirme işlemi gerçekleştirdiğinizde aksi belirtilmediği sürece arşiv içeriğinin bir klasör içeriğinde (wordpress veya WordPress-x) tutulacağını görebilirsiniz. Örneğin, latest.zip
arşivini indirdiğimizi varsayalım. İndirilen arşivi unzip ile açtığımızda wordpress
adında bir klasör oluşacaktır. Bu durumu basit bir şekilde düzenlemek için şu komutu kullanabiliriz:
unzip -qq latest.zip && mkdir test && mv ./wordpress/* ./test/ && rm -rf wordpress latest.zip
Yukarıdaki komut latest.zip
arşivi sonrasında oluşan wordpress
klasör içeriğini test adında oluşturduğumuz bir diğer klasöre aktarmakta ve ardından hem wordpress
klasörünü hem de latest.zip
arşivini silmekte. Şayet komut içerisinde yer alan test
yerine dosyaların doğrudan bulunulan dizine açılmasını istersek komutumuzu şu şekilde güncelleyebiliriz:
unzip -qq latest.zip && mv ./wordpress/* ./ && rm -rf wordpress latest.zip
Örneğin ornekwebsitesi.com
web adresimiz içeriğine bu indirme işlemini gerçekleştirmiş ve wordpress
klasörünü korumuş olalım. Bu durumda wordpress kurulum işlemlerimiz biz aksini belirtmediğimiz sürece ornekwebsitesi.com/wordpress
adresi üzerinden yayınlanacaktır. Elbette subdomain tanımlaması yaparsak wordpress.ornekwebsitesi.com
şeklinde de yayınımızı gerçekleştirebiliriz. Bu durumda en basit çözüm wordpress
içeriğini bir üst dizine (doğrudan webroot
; html, public_html, www, vb.) taşımaktır, yani /var/www/html/worpdress
içeriğindeki dosyaları /var/www/html/
altında tutmaktır. Ancak tek yöntem bu değil.
.htaccess Düzenlemesi
Evet, .htaccess
dosyasını güncelleyerek farklı bir klasördeki WordPress kurulumunu doğrudan ana URL üzerinden görüntüleyebiliriz. Bu işlem içim öncelikle .htaccess
dosyasını webroot dizinine taşımalıyız. Ardından dosya içeriğini aşağıdaki gibi düzenlemeliyiz.
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.)?ornekwebsitesi.com$
RewriteCond %{REQUEST_URI} !^/worpdress/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.\*)$ /wordpress/$1
RewriteCond %{HTTP_HOST} ^(www.)?ornekwebsitesi.com$
RewriteRule ^(/)?$ wordpress/index.php \[L\]
Yukarıdaki tanımlama içerisinde yer alan ornekwebsitesi.com
ve wordpress
klasör isimlerini kendi işlemlerinize göre değiştirebilirsiniz.
URL Düzenlemesi
Diğer yöntemde ise WordPress adresi (URL) ve Site adresi (URL) alanlarını düzenleyip .htaccess
dosyası üzerinden bu düzenlemeleri tanımlamalıyız. WordPress adresi (URL) wordpress kurulumumuzu yaptığımız klasörü, Site adresi (URL) ise kullancıların sitemizi görüntülemelerini sağladığımız yoldur, yani ikisi birbirinden farklı olabilir.

Bu işlemi web alanadı değişikliklerinde de kullanabilirsiniz. Eğer bir nedenden dolayı wp-admin
erişiminde problem yaşarsanız ilgili değişiklikleri wp-config.php
içerisine WP_HOME
ve WP_SITEURL
satırlarını ekleyerek de gerçekleştirebilirsiniz.
define( 'WP_HOME', 'http://ornekwebsitesi.com/wordpress' );
define( 'WP_SITEURL', 'http://ornekwebsitesi.com' );
update_option
ile yukarıdaki işlemi aktif tema içerisinde yer alan functions.php
dosyasıyla da gerçekleştirmek mümkün.
update_option( 'siteurl', 'http://ornekwebsitesi.com/wordpress' );
update_option( 'home', 'http://ornekwebsitesi.com' );
Bir diğer alternatif de WP-CLI üzerinden wp option komutunu kullanmak.
wp option update home 'http://ornekwebsitesi.com/wordpress'
wp option update siteurl 'http://ornekwebsitesi.com'
Site adresinde değişiklik yapmak istediğinizde wp search-replace
ile tüm değişiklikleri tek seferde gerçekleştirebilirsiniz.
wp search-replace 'ornekwebsitesi.com' 'yeniornekwebsitesi.com' --skip-columns=guid
Yukarıdaki işlemlerin dışında daha pek çok alternatif mevcut (SQL komutları gibi). İlgili diğer alternatifler için Changing The Site URL3 ve Giving WordPress Its Own Directory4 yazılarına göz atabilirsiniz. Tüm bu işlemler wordpress erişimini subdirectory ve/veya doğrudan ana alanadı üzerinden sağladığımız durumlar için geçerli. Peki, subdomain kullanmak istersek ne yapmalıyız? Elbette klasör düzenlemeleri (wordpress kurulumunu farklı klasörde tutmak vb.) için aynı işlemler geçerliliğini koruyacaklardır. Yapmamız gereken ek düzenlemeler ise cPanel ve benzeri yönetim sistemi üzerinden subdomain oluşturmak (wilcard kullanımı elbette tavsiyem) ve .htaccess
içeriğini gerekli şekilde düzenlemek5.
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
# add a trailing slash to /wp-admin
RewriteRule ^wp-admin$ wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^(wp-(content|admin|includes).*) $1 [L]
RewriteRule ^(.*\.php)$ $1 [L]
RewriteRule . index.php [L]
Peki, kurulumunuzun wordpress
adlı klasörde olduğunu ancak erişimin altsite.ornekwebsitesi.com
adresiyle sağlanmasını istediğimizde yapmamız gereken nedir?

Doğrudan wordpress
klasörü içerisindeki .htaccess
içeriğini aşağıdaki gibi düzenlememiz yeterli olacaktır.
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
Asıl yapılması gereken işlem cPanel ve benzeri yönetim sistemi üzerinden subdomain oluşturma aşamasında subdomain belirledikten sonra klasör yolu olarak WordPress dosyalarının yer aldığı dizini belirtmektir. Yani, site.ornekwebsitesi.com
adresi üzerinden esasında /var/www/html/wordpress
içeriğindeki sitemizi görüntülüyor oluruz. Evet, WordPress subdirctory ve subdomain yapılandırmalarımızı farklı senaryolar dahilinde farklı şekillerde yönetmemiz mümkün.