Bagaimana cara me-redirect root dan hanya me-root via htaccess?


53

Saya ingin mengarahkan ulang hanya root saya ke url lain, tetapi pertahankan semua / sub / direktori di mana mereka berada (dan redirect)

contoh:

mysite.com/1 mengalihkan ke suatu tempat mysite.com/admin membuka halaman

Saya ingin mysite.com/ untuk mengarahkan ulang ke mysecondsite.com dan hanya ini dengan 301 redirect menggunakan htaccess

Jawaban:


75

Coba ini:

RewriteEngine on
RewriteCond %{HTTP_HOST} mysite\.com [NC]
RewriteCond %{REQUEST_URI} ^/$
Rewriterule ^(.*)$ http://mysecondsite.com/ [L,R=301]

Jika Anda tidak perlu memeriksa domain lama (misalnya, jika direktori tempat .htaccess Anda hanya digunakan oleh domain lama), Anda dapat menghapus baris kedua.


1
Dalam kasus saya, saya perlu mengarahkan lalu lintas ke mysite.com/ tetapi tidak ke foo.mysite.com sehingga harus menambahkan regex ke baris 2: RewriteCond %{HTTP_HOST} ^mysite\.com$ [NC]untuk memastikan pertandingan itu untuk host yang tepat
jaygooby

Lebih efisien untuk memeriksa jalur URL dalam RewriteRule pola (seperti pada jawaban @ DaveForgac), daripada menggunakan kondisi tambahan untuk memeriksa REQUEST_URIvariabel server.
MrWhite

38

Jika Anda bermaksud hanya mengarahkan "/" ke domain lain, ini akan berfungsi:

RewriteEngine on
RewriteRule ^$ http://www.example.com/ [R=301,L]

Ini hanya cocok dengan root domain tanpa apa-apa setelahnya sehingga hanya akan mengarahkan ulang nama domain tanpa nama file yang ditentukan.


Variasi sedikit bekerja untuk saya. Ditambahkan ke bagian bawah htaccess saya, setelah semua aturan lain diterapkan, saya hanya ingin memberikan halaman selamat datang kepada siapa pun yang mengunjungi domain root saya (tanpa subdomain): RewriteCond% {HTTP_HOST}! ^ (Subdomain1 | subdomain2) \. Mysite \ .com $ [NC] RewriteRule ^ $ /welcome.php [NC, L]
MarsAndBack

15

Ini seharusnya bekerja dengan baik:

RedirectMatch 301 ^/$ https://example.com/

2
Ini lebih disukai (untuk jawaban yang ada) jika Anda belum menggunakan mod_rewrite untuk pengalihan lainnya.
MrWhite

-3

Solusi yang lebih pendek:

Redirect 301 / http://mysecondsite.com/

12
Ini TIDAK akan melakukan apa yang diinginkan jardel. Ini akan mengarahkan SEMUA halaman daripada hanya root.
sharoz
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.