Saya tidak yakin bagaimana mengatakan ini dalam bentuk sederhana untuk mengembalikan hasil pencarian yang sesuai, jadi saya telah membuat Stack.
Saya memiliki dua domain.
Domain1.com
Domain2.com
Saya ingin semua instance Domain2.com dialihkan ke Domain1.com secara otomatis.
Jika jalur slug disediakan untuk Domain2.com, saya ingin jalur slug itu dibawa untuk dideteksi oleh Domain1.com .
Kemudian, saya ingin Domain1.com mendeteksi apa pun yang berasal dari Domain2.com dan mengarahkan ulang sesuai dengan jalur siput yang cocok di Domain1.com .
Contoh:
Domain2.com/this-slug
otomatis dialihkan ke
Domain1.com/this-slug
... karena Domain1.com mengerti apa yang harus dilakukan persis dengan Domain2.com dan siput apa pun jika diteruskan bersamanya.
Saya lebih suka (saya pikir) ini dilakukan melalui .htaccess tetapi saya terbuka untuk metode lain. Di tahun depan saya berharap untuk pindah ke NGINX jadi saya tidak yakin bagaimana cara kerjanya, itulah sebabnya saya terbuka untuk metode lain untuk dibawa pada saat itu.
Saya pikir perbedaan dari hasil pencarian yang saya temukan adalah saya ingin ini dilakukan secara otomatis dan tidak memasukkan jalur slug secara manual untuk masing-masing yang diperlukan. Saya pada dasarnya menggunakan Domain2.com sebagai Bagikan URL ke Domain1.com.
Solusi
Jika Anda ingin mengalihkan domain2.com/this-slug ke domain1.com/this-slug , tambahkan aturan penulisan ulang ini ke file htaccess domain2.com:
RewriteEngine On
# First condition, requested resource is not an existing file in domain2.com (this condition can be removed if needed)
RewriteCond %{REQUEST_FILENAME} !-f
# Second condition, requested resource is not an existing directory file in domain2.com (this condition can be removed if needed)
RewriteCond %{REQUEST_FILENAME} !-d
# Third condition, slug must exist
RewriteCond %{REQUEST_URI} !^/?$
# Do the redirection
RewriteRule ^(.*)$ http://domain1.com/$1 [R=301,QSA,L]
Harap dicatat bahwa dengan aturan penulisan ulang ini domain2.com/something/this-slug akan dialihkan ke domain1.com/something/this-slug , jika Anda tidak ingin mengarahkan ulang jika ada garis miring menengah dalam URI permintaan, gunakan ini sebagai kondisi ketiga sebagai gantinya:
RewriteCond %{REQUEST_URI} ^/?[^/]+$