Membalikkan aturan pengalihan .htaccess


0

Biarkan saya jelaskan dengan contoh. Katakanlah, saya memiliki aturan pengalihan ini di file .htaccess saya:

RedirectMatch 301 ^/([^/]+)/([^/]+)/$ http://www.example.com/$2

Apa yang pada dasarnya dilakukannya adalah, redirect http://www.mysite.com/sports/test-post/ke http://www.mysite.com/test-post/.

Sekarang, bagaimana cara mengubah aturan .htaccess untuk melakukan yang sebaliknya? (mis. redirect http://www.mysite.com/test-post/ke http://www.mysite.com/sports/test-post/)

Jawaban:


2
RewriteCond %{REQUEST_URI} !^/sports/ [NC]
RewriteRule ^/([^/]+)/(.*)$ http://www.example.com/sports/$1/$2 [R=301]

Ini juga akan dikirim /test-post/blah/ke /sports/test-post/blah- jika Anda tidak ingin melakukan pengalihan ketika ada hal-hal tambahan di sana, parit (.*)dari string yang cocok dan dari $2dari string yang diganti.


Ups! Itu hanya sebuah contoh. sportssebenarnya bisa kategori apa saja tergantung pada halaman. Jadi, olahraga tidak bisa benar-benar sesuai aturan. SUNTING: Juga, jika mungkin, harap berikan RedirectMatchaturan alih-alih yang mod_rewriteberbasis. Terima kasih!
its_me

@AahanKrish Anda harus mengklarifikasi apa tujuan Anda. Bagaimana redirect seharusnya mendapatkan kategori yang benar, padahal yang ada hanyalah redirect /test-post? Mengenai RedirectMatch, itu hanya bisa berfungsi jika Anda hanya akan mengarahkan ulang /test-post/- jika Anda ingin mengarahkan ulang /test-post/blahmaka RedirectMatchhanya akan memberi Anda loop pengalihan.
Shane Madden

: P Betapa bodohnya aku. Terima kasih atas jawaban Anda, itu memecahkan masalah saya.
its_me
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.