Başlıkta belirttiğim üzere post ve page sayfalarını subdomaine çevirecek eklenti arayışındayım.
Örnek : xxx.com/test.html
yerine
test.xxx.com çevirmeli..
Sorunsuz çalışan eklenti varsa veya sıfırdan yazacak kişiler pm atabilir.
Subdomain eklentisi arıyorum.
4
●158
- 30-12-2024, 09:26:04İsteğinizi yanlış anlamadıysam htaccess dosyası ile yapabilirsiniz.
RewriteEngine On # Ana alan adı veya www kontrolünü atla RewriteCond %{HTTP_HOST} !^www\.domain\.com$ [NC] RewriteCond %{HTTP_HOST} !^domain\.com$ [NC] # Alt alan adını yakala ve yönlendir RewriteCond %{HTTP_HOST} ^([^.]+)\.domain\.com$ [NC] RewriteRule ^(.*)$ /%1.html [L,R=301] - 30-12-2024, 09:29:20Öncelikle cevap için teşekkürler. Yüzlerce post ve page var. tek tek yapmak yerine bir eklentisi olsa iyi olurdu.Perturbado adlı üyeden alıntı: mesajı görüntüle
- 30-12-2024, 09:31:17
<?php /* Plugin Name: Subdomain Redirector Plugin URI: https://example.com Description: Yazı, sayfa ve kategorileri subdomaine yönlendiren eklenti. Belirli yazıları ve kategorileri hariç tutma özelliği içerir. Version: 1.3 Author: Your Name Author URI: https://example.com */ // Yönetim menüsü ekle function subdomain_redirector_add_admin_menu() { add_menu_page( 'Subdomain Ayarları', 'Subdomain Ayarları', 'manage_options', 'subdomain_redirector', 'subdomain_redirector_settings_page', 'dashicons-networking', 100 ); } add_action('admin_menu', 'subdomain_redirector_add_admin_menu'); // Yönetim sayfası içeriği function subdomain_redirector_settings_page() { ?> <div class="wrap"> <h1>Subdomain Ayarları</h1> <form method="post" action="options.php"> <?php settings_fields('subdomain_redirector_settings'); do_settings_sections('subdomain_redirector'); submit_button(); ?> </form> </div> <?php } // Ayarları kaydetme ve kayıt alanı oluşturma function subdomain_redirector_settings_init() { // Ana domain ayarı register_setting('subdomain_redirector_settings', 'subdomain_redirector_base_domain'); // Hariç tutulacak yazılar/sayfalar ayarı register_setting('subdomain_redirector_settings', 'subdomain_redirector_exclude_ids'); // Hariç tutulacak kategoriler ayarı register_setting('subdomain_redirector_settings', 'subdomain_redirector_exclude_categories'); add_settings_section( 'subdomain_redirector_section', 'Genel Ayarlar', 'subdomain_redirector_section_callback', 'subdomain_redirector' ); add_settings_field( 'subdomain_redirector_base_domain', 'Ana Domain', 'subdomain_redirector_base_domain_render', 'subdomain_redirector', 'subdomain_redirector_section' ); add_settings_field( 'subdomain_redirector_exclude_ids', 'Hariç Tutulacak Yazılar/Sayfalar', 'subdomain_redirector_exclude_ids_render', 'subdomain_redirector', 'subdomain_redirector_section' ); add_settings_field( 'subdomain_redirector_exclude_categories', 'Hariç Tutulacak Kategoriler', 'subdomain_redirector_exclude_categories_render', 'subdomain_redirector', 'subdomain_redirector_section' ); } add_action('admin_init', 'subdomain_redirector_settings_init'); // Alan açıklaması function subdomain_redirector_section_callback() { echo '<p>Alt alan adı yönlendirmesi için genel ayarları buradan düzenleyebilirsiniz.</p>'; } // Ana domain giriş alanı function subdomain_redirector_base_domain_render() { $option = get_option('subdomain_redirector_base_domain', parse_url(home_url(), PHP_URL_HOST)); ?> <input type="text" name="subdomain_redirector_base_domain" value="<?php echo esc_attr($option); ?>" class="regular-text"> <?php } // Hariç tutulacak yazılar/sayfalar giriş alanı function subdomain_redirector_exclude_ids_render() { $option = get_option('subdomain_redirector_exclude_ids', ''); ?> <textarea name="subdomain_redirector_exclude_ids" rows="5" cols="50" class="large-text"><?php echo esc_textarea($option); ?></textarea> <p class="description">Yönlendirme dışı bırakılacak yazı/sayfa ID'lerini virgülle ayırarak girin (ör: 1,2,45).</p> <?php } // Hariç tutulacak kategoriler giriş alanı function subdomain_redirector_exclude_categories_render() { $option = get_option('subdomain_redirector_exclude_categories', ''); ?> <textarea name="subdomain_redirector_exclude_categories" rows="5" cols="50" class="large-text"><?php echo esc_textarea($option); ?></textarea> <p class="description">Yönlendirme dışı bırakılacak kategori ID'lerini virgülle ayırarak girin (ör: 3,7).</p> <?php } // Alt alan adı yönlendirme işlevi function subdomain_redirector_init() { if (is_singular(['post', 'page'])) { global $post; // Hariç tutulacak yazılar/sayfalar $exclude_ids = get_option('subdomain_redirector_exclude_ids', ''); $exclude_ids_array = array_map('trim', explode(',', $exclude_ids)); // Eğer yazı/sayfa hariç tutulmuşsa yönlendirme yapma if (in_array($post->ID, $exclude_ids_array)) { return; } // Hariç tutulacak kategoriler $exclude_categories = get_option('subdomain_redirector_exclude_categories', ''); $exclude_categories_array = array_map('trim', explode(',', $exclude_categories)); // Eğer yazı hariç tutulan bir kategoriye aitse yönlendirme yapma $post_categories = wp_get_post_categories($post->ID); if (array_intersect($post_categories, $exclude_categories_array)) { return; } // Alt alan adı yönlendirmesi $post_slug = $post->post_name; $base_domain = get_option('subdomain_redirector_base_domain', parse_url(home_url(), PHP_URL_HOST)); $subdomain_url = "https://{$post_slug}." . $base_domain; if (!is_preview() && !is_admin()) { wp_redirect($subdomain_url, 301); exit; } } } add_action('template_redirect', 'subdomain_redirector_init');Kodu dene fikir olsun diye paylaştım kesinlikle sitende deneme ilkönce localde dene - 30-12-2024, 09:31:57Yazdığım htaccess kodu, şu şekilde çalışıyor;
sub.xxx.com 'a girildiğinde, bunu yakalayıp otomatik olarak xxx.com/sub.html 'e yönlendirme yapıyor.. Dilerseniz şu kod ile, yönlendirme yapmadan, linkte sub.xxx.com gözükürken, içeriği xxx.com/sub.html 'den alabilirsiniz
RewriteEngine On # Ana alan adı veya www kontrolünü atla RewriteCond %{HTTP_HOST} !^www\.domain\.com$ [NC] RewriteCond %{HTTP_HOST} !^domain\.com$ [NC] # Alt alan adını yakala ve yeniden yaz RewriteCond %{HTTP_HOST} ^([^.]+)\.domain\.com$ [NC] RewriteRule ^(.*)$ /%1 [L]