Aturan pengalihan mana yang akan saya gunakan untuk mengalihkan semua halaman di bawah olddomain.example
untuk diarahkan newdomain.example
?
Situs ini memiliki struktur yang sama sekali berbeda, jadi saya ingin setiap halaman di bawah domain lama untuk diarahkan ke halaman indeks domain baru .
Saya pikir ini akan dilakukan (di bawah direktori basis olddomain.example):
RewriteEngine On
RewriteRule ^(.*)$ http://newdomain.example/ [R=301]
Tetapi jika saya menavigasi ke olddomain.example/somepage
saya akan diarahkan ke newdomain.example/somepage
. Saya mengharapkan pengalihan hanya ke newdomain.example
tanpa akhiran halaman.
Bagaimana cara menjaga bagian terakhir keluar?
.htaccess
mod-rewrite
Yuval Adam
sumber
sumber
RewriteEngine on
RewriteRule ^(.*)$ http://www.newdomain.com/$1 [R=301,L]
* stackoverflow.com/a/7578810/1066234Jawaban:
Mungkin seperti ini:
sumber
RewriteCond %{HTTP_HOST} !^NEWDOMAIN\.com$ [NC]
?Jawaban di bawah ini berpotensi menyebabkan loop pengalihan tak terbatas ...
Di sini, yang ini mengalihkan semua setelah nama domain pada url ke salinan yang sama persis pada url domain baru:
www.example.net/somepage.html?var=foo
dialihkan kewww.newdomain.com/somepage.html?var=foo
sumber
Sekedar klarifikasi, setelah menghapus pengalihan hosting yang menghalangi, solusi asli saya juga berfungsi:
sumber
Saya telah menggunakan blog Wordpress saya ini sebagai .htaccess. Itu mengkonversi http: //www.blah.example/asad , http: //blah.example/asad , http: //www.blah.example2/asad dll, ke http: //blah.example/asad Terima kasih kepada semua jawaban lain saya menemukan jawabannya.
sumber
Ini berhasil untuk saya
sumber
Ada berbagai cara untuk melakukan ini dan berbagai pengalihan, saya telah mencantumkannya di bawah ini:
301 (Permanen) Redirect: Arahkan seluruh situs ke URL yang berbeda secara permanen. Ini adalah jenis pengalihan yang paling umum dan berguna dalam sebagian besar situasi. Dalam contoh ini, kami mengarahkan ulang ke domain "example.com":
302 Pengalihan (Sementara): Arahkan seluruh situs ke URL sementara yang berbeda. Ini berguna untuk keperluan SEO ketika Anda memiliki halaman arahan sementara dan berencana untuk beralih kembali ke halaman arahan utama Anda di kemudian hari:
Redirect index.html ke subfolder tertentu:
Mengarahkan file lama ke jalur file baru:
Redirect ke halaman indeks tertentu:
sumber
Redirect 301 / http://example.com/$1
maka semua halaman situs asli akan diarahkan ke root situs baru$1
diperlukan di sini, Anda berpikir tentangRedirectMatch
arahan (tapi kemudian Anda masih perlu mendefinisikan grup penangkap untuk$1
referensi ke).Redirect
arahan ini akan mengarahkan seperti untuk, sedangkan OP ingin mengarahkan hanya ke halaman rumah situs baru (meskipun itu sendiri tidak direkomendasikan). Anda mungkin perlu menggunakanRedirectMatch
arahan jika Anda hanya ingin mengarahkan ulang ke URL tertentu.Jika Anda ingin mengalihkan dari beberapa lokasi ke subdomain Anda dapat menggunakan:
Redirect 301 /Old-Location/ http://subdomain.yourdomain.com
sumber
RewriteEngine On
melempar 500 Kesalahan Internal. Ini adalah Webspace yang sangat terbatas. MenggunakanRedirect 301 / http://foo
adalah satu-satunya cara yang mungkin untuk dilakukan.Jika domain baru tempat Anda mengarahkan situs lama Anda berada pada host lain, Anda bisa menggunakan a
Redirect
Ini akan mengalihkan semua permintaan dari
olddomain
kenewdomain
.Redirect
arahan tidak akan berfungsi atau dapat menyebabkan aRedirect loop
jika domain baru dan domain lama Anda keduanya ada di host yang sama, dalam hal ini Anda harus menggunakanmod-rewrite
untuk mengarahkan ulang berdasarkan header host yang diminta.sumber
Reputasi saya tidak akan memungkinkan saya untuk mengomentari jawaban, tetapi saya hanya ingin menunjukkan bahwa jawaban dengan nilai tertinggi di sini memiliki kesalahan:
harus memiliki garis miring sebelum $ 1, jadi
sumber
Solusi saya sebagai SymLinks tidak berfungsi di server saya jadi saya menggunakan If di PHP saya.
sumber
Ini adalah bug dalam versi apache yang lebih lama (dan dengan demikian mod_rewrite) di mana awalan jalur ditambahkan ke jalur yang ditulis ulang jika diubah. Lihat disini
Saya pikir itu diperbaiki di apache2 V2.2.12, ada bendera khusus yang perlu Anda gunakan yang akan saya tambahkan di sini ketika saya menemukannya, (saya pikir itu NP untuk No Path)
sumber
Dari sudut pandang kegunaan, akan lebih baik, jika Anda juga mengirim jalur dengan permintaan (yaitu, apa yang Anda miliki saat ini) dan biarkan situs baru Anda menanganinya:
(dan lebih baik lagi, melakukan ini secara otomatis.)
Ini jelas banyak pengkodean dan heuristik untuk situs web yang lebih besar, tetapi menurut saya itu akan membayar dalam hal kepuasan pengguna (ketika bookmark yang disimpan dengan hati-hati dari produk impian Anda hanya membawa Anda ke halaman depan newdomain.com, ini membuat frustrasi.)
sumber
Jika Anda ingin mengarahkan ulang untuk menyelesaikan situs (domain) baru yang berbeda tanpa parameter atau halaman, gunakan ini:
sumber
.htaccess
karena tidak akan cocok dengan URL apa pun di root dokumen. Ini akan berfungsi dalam konfigurasi server atau konteks VirtualHost.Saya mencoba jawaban user968421 dan solusi OP tetapi browser muncul kesalahan keamanan untuk halaman checkout. Saya tidak bisa memberi tahu Anda mengapa sebenarnya.
Tuan rumah kami (Ground Site) juga tidak dapat menemukannya.
Solusi terakhirnya sudah dekat, tetapi sedikit perubahan pada jawaban user968421 (catatan: tidak seperti OP, saya mencoba untuk mengarahkan kembali ke halaman yang sesuai, tidak hanya ke beranda jadi saya mempertahankan referensi belakang [
$1
setelah domain] dari user968421's menjawab):Mendapat tweak dari generator pengalihan htaccess ini direkomendasikan oleh artikel Host Gator (kali putus asa, tindakan putus asa, oke?).
sumber
Sederhana seperti ini dan ini tidak akan membawa kueri penelusuran dari URL ke domain baru.
sumber
Gunakan pengalihan bersyarat dengan
Options -FollowSymLinks
danAllowOverride -Options
dinonaktifkan oleh Hoster jika beberapa file lokal juga dilayani:Contoh .htaccess
Contoh ini akan melayani index.html lokal dan mengalihkan semua staf lain ke domain baru.
sumber
Coba metode ini untuk mengalihkan semua ke beranda domain baru, Ini berfungsi untuk saya:
sumber
Jawaban sebelumnya tidak berhasil untuk saya.
Saya menggunakan kode ini. Jika Anda menggunakan OSX pastikan untuk menggunakan format yang benar.
sumber