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
sajt-a.com/odlican-clanak === sajt-b.com/odlican-clanak
odlicno za spamanje googlea
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
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.
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.