Hoću glavni sajt A da prikažem i na sajtu B

Pozdrav ljudi, hteo bih preko cloudflare da izmenim recorde da mi se glavni sajt prikazuje i na drugoj domeni tj primera radi hocu da se geek.hr prikazuje i na geek.me, zna li nko sta treba da dodam u cloudflare kako bi to funkcionisalo, lep pozdrav.

Ne koristim cloudflare pa ovo smatraj za razmišljanje.

Ako želiš da se na webB.com prikazuje isto što i na webA.com, postavke moraju biti za webB.com jer je posjetitelj došao na webB.com. Ako se to može podesiti onda svatko može “klonirati” nečiji web.

No, danas se svašta može, meni je logično rješenje kopiranje fajlova sa A na B tako da oba weba koriste istu bazu.

Ne ide to tako. Ako želiš isti sadržaj onda na hostingu gdje je taj drugi sajt kloniraš prvi.

ako

  • su wordpress sajtovi u pitanju
  • hoces da se isti sadrzaj prikazuje na dvije domene, bez redirekcije … i da linkovi budu razliciti a sadrzaj (postovi i kategorije) isti

sajt-a.com/neki-post === sajt-b.com/neki-post

onda su ovo koraci:

  • sajt-a.com je glavni, ima svoju bazu
  • instaliraj wp za sajt-b.com, koristi bazu prvog sajta ali drugi prefiks izaberi

u wp-config.php drugog sajta ispod linije define( 'WP_DEBUG', false ); zalijepi

define('CUSTOM_POSTMETA_TABLE', 'db_postmeta');
define('CUSTOM_POSTS_TABLE', 'db_posts');
define('CUSTOM_TERMS_TABLE', 'db_terms');
define('CUSTOM_TERM_RELATIONSHIPS_TABLE', 'db_relationships');
define('CUSTOM_TERM_TAXONOMY_TABLE', 'db_taxonomy');

naravno db zamijeni sa prefiksom baze prvog sajta

zatim u /wp-includes/class-wpdb.php drugog sajta dodaj ovo

			
			if ( isset( $tables['postmeta'] ) && defined( 'CUSTOM_POSTMETA_TABLE' ) ) {
                $tables['postmeta'] = CUSTOM_POSTMETA_TABLE;
            }
            
            if ( isset( $tables['posts'] ) && defined( 'CUSTOM_POSTS_TABLE' ) ) {
                $tables['posts'] = CUSTOM_POSTS_TABLE;
            }
            
            if ( isset( $tables['terms'] ) && defined( 'CUSTOM_TERMS_TABLE' ) ) {
                $tables['terms'] = CUSTOM_TERMS_TABLE;
            }
            if ( isset( $tables['term_relationships'] ) && defined( 'CUSTOM_TERM_RELATIONSHIPS_TABLE' ) ) {
                $tables['term_relationships'] = CUSTOM_TERM_RELATIONSHIPS_TABLE;
            }
            
            if ( isset( $tables['term_taxonomy'] ) && defined( 'CUSTOM_TERM_TAXONOMY_TABLE' ) ) {
                $tables['term_taxonomy'] = CUSTOM_TERM_TAXONOMY_TABLE;
            }

ispod ovog dijela

if ( $prefix ) {
			if ( ! $blog_id ) {
				$blog_id = $this->blogid;
			}
			$blog_prefix   = $this->get_blog_prefix( $blog_id );
			$base_prefix   = $this->base_prefix;
			$global_tables = array_merge( $this->global_tables, $this->ms_global_tables );
			foreach ( $tables as $k => $table ) {
				if ( in_array( $table, $global_tables, true ) ) {
					$tables[ $table ] = $base_prefix . $table;
				} else {
					$tables[ $table ] = $blog_prefix . $table;
				}
				unset( $tables[ $k ] );
			}

tako da kompletna funkcija sad izgleda

	public function tables( $scope = 'all', $prefix = true, $blog_id = 0 ) {
		switch ( $scope ) {
			case 'all':
				$tables = array_merge( $this->global_tables, $this->tables );
				if ( is_multisite() ) {
					$tables = array_merge( $tables, $this->ms_global_tables );
				}
				break;
			case 'blog':
				$tables = $this->tables;
				break;
			case 'global':
				$tables = $this->global_tables;
				if ( is_multisite() ) {
					$tables = array_merge( $tables, $this->ms_global_tables );
				}
				break;
			case 'ms_global':
				$tables = $this->ms_global_tables;
				break;
			case 'old':
				$tables = $this->old_tables;
				if ( is_multisite() ) {
					$tables = array_merge( $tables, $this->old_ms_global_tables );
				}
				break;
			default:
				return array();
		}

		if ( $prefix ) {
			if ( ! $blog_id ) {
				$blog_id = $this->blogid;
			}
			$blog_prefix   = $this->get_blog_prefix( $blog_id );
			$base_prefix   = $this->base_prefix;
			$global_tables = array_merge( $this->global_tables, $this->ms_global_tables );
			foreach ( $tables as $k => $table ) {
				if ( in_array( $table, $global_tables, true ) ) {
					$tables[ $table ] = $base_prefix . $table;
				} else {
					$tables[ $table ] = $blog_prefix . $table;
				}
				unset( $tables[ $k ] );
			}
			
			if ( isset( $tables['postmeta'] ) && defined( 'CUSTOM_POSTMETA_TABLE' ) ) {
                $tables['postmeta'] = CUSTOM_POSTMETA_TABLE;
            }
            
            if ( isset( $tables['posts'] ) && defined( 'CUSTOM_POSTS_TABLE' ) ) {
                $tables['posts'] = CUSTOM_POSTS_TABLE;
            }
            
            if ( isset( $tables['terms'] ) && defined( 'CUSTOM_TERMS_TABLE' ) ) {
                $tables['terms'] = CUSTOM_TERMS_TABLE;
            }
            if ( isset( $tables['term_relationships'] ) && defined( 'CUSTOM_TERM_RELATIONSHIPS_TABLE' ) ) {
                $tables['term_relationships'] = CUSTOM_TERM_RELATIONSHIPS_TABLE;
            }
            
            if ( isset( $tables['term_taxonomy'] ) && defined( 'CUSTOM_TERM_TAXONOMY_TABLE' ) ) {
                $tables['term_taxonomy'] = CUSTOM_TERM_TAXONOMY_TABLE;
            }
		}

		return $tables;

	}

sta si ovim postigao? dva sajta dijele jednu bazu, mogu koristiti razlicite teme i plugine, mogu imati razlicite korisnike ali koriste iste clanke, slike i kategorije … permalinkovi su im isti ali domene razlicite … kada dodas clanak na prvom sajtu automatski se generise i na drugom sajtu :smiley:

sajt-a.com/odlican-clanak === sajt-b.com/odlican-clanak

odlicno za spamanje googlea :smiley:

ako hoces sve da preslikas treba jos custom tabela definisati, ako obje instalacije budu koristile jedan prefiks onda ce ti drugi sajt prebacivati na prvi zbog URLova prvog sajta sacuvanih u bazi

3 Likeova

Prvo na serveru moras napraviti alias domene, npr. domena2.com je alias domene1.com. Ovisno o verziji, u cPanelu se to zove “Alias” ili “Parked domain”. Nakon toga u Cloudflareu za obe domene podesis isti A record s istom IP adresom i dobit ces ovo sto si pitao.

Hoce li to tehnicki funkcionirati, ovisi o jos nekoliko faktora. Ako je WP u pitanju, onda vjerojatno nece jer je u MySQL bazi vec definirana jedna domena, pa u tom slucaju moras napraviti nesto poput ovog sto je @musliamar gore napisao.

2 Likeova

Moglo bi se rjesit na nacin da sajtA .com i sajtB .com se nalaze na istom serveru i koriste istu bazu, fajlovi od sajtova su naravno isti.