• 30-12-2024, 09:18:02
    #1
    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.
  • 30-12-2024, 09:26:04
    #2
    İ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
    #3
    Perturbado adlı üyeden alıntı: mesajı görüntüle
    İ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]
    Öncelikle cevap için teşekkürler. Yüzlerce post ve page var. tek tek yapmak yerine bir eklentisi olsa iyi olurdu.
  • 30-12-2024, 09:31:17
    #4
    <?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:57
    #5
    Yazdığı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]