Saya memiliki situs web yang awalnya dibangun menggunakan ASP klasik. Sekitar setahun yang lalu ditulis ulang dalam PHP. Ini menyebabkan ekstensi file berubah dan beberapa halaman dipindahkan ke lokasi baru di dalam situs web. Tentu saja kami melakukan 301 pengalihan dari URL lama ke URL baru sehingga pengguna dan mesin pencari mereka dapat menemukan lokasi baru mereka. Ini berfungsi dengan baik.
Kami juga membuat mereka alat yang memungkinkan pemilik situs untuk membuat URL kecil mereka sendiri yang akan mengarahkan ulang ke halaman dengan variabel pelacakan kampanye Google Analytics yang termasuk dalam URL sehingga mereka dapat melacak kampanye dan melihat kinerjanya.
Masalah yang saya miliki adalah konflik aturan pelacakan kampanye dengan pengalihan 301 dan mencegah pengalihan bekerja sama sekali.
Ini kode pelacakan kampanye:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /tracking.php?$1 [R=301,L]
Seperti yang Anda lihat, ini memeriksa untuk melihat apakah ada file dan apakah itu tidak diarahkan ke skrip pelacakan (tracking.php) yang kemudian mengambil kode pelacakan dan mengalihkan ke URL yang tepat dengan kode kampanye Google Analytics dalam kueri tali.
Kode itu menyebabkan aturan seperti ini gagal:
redirect 301 /about.asp /about.php
redirect 301 /capabilities.asp /capabilities.php
redirect 301 /capacitors.asp /capacitors.php
Masuk akal bahwa ini tidak bekerja bersama karena aturan pelacakan mengatakan, "jika file tidak ditemukan redirect ke tracking.php". Yang saya butuhkan adalah pengalihan 301 dijalankan terlebih dahulu, dan jika tidak ada yang cocok, maka arahkan ke skrip pelacakan. Menempatkan aturan pelacakan di bawah pengalihan 301 tidak mengubah hasil.
Bisakah ini dilakukan melalui .htaccess? Atau akankah saya perlu memodifikasi skrip pelacakan sehingga jika suatu kampanye tidak ditemukan akan memeriksa untuk melihat apakah ID kampanye sebenarnya adalah halaman lama yang perlu diarahkan dan kemudian melakukan 301 redirect dari sana?
[R=301,L]
setelah setiap pengalihan yang menyebabkan masalah saya. Biarkan saya mencobanya dan saya akan memberi tahu Anda apa yang terjadi.*.asp -> *.php
wildcard karya besar. Aturan individual untuk halaman yang bukan transisi langsung dan memiliki string kueri sedang bermasalah. Tapi ini sepertinya cara yang tepat untuk pergi. Jika saya tidak dapat menyelesaikan bagian itu, saya akan memulai pertanyaan baru tentang hal itu.Saya akan membalikkan pengalihan dan membiarkannya seperti semula. Arahkan situs BARU Anda ke situs LAMA Anda. Situs LAMA Anda mungkin sudah mendapatkan manfaat dari tautan balik, usia situs web, dan SEO. Sayang sekali kehilangan itu hanya untuk menggantinya dengan situs yang lebih baru dengan peringkat halaman yang lebih rendah. Google menghukum pengalihan. Situs BARU Anda belum memiliki SEO apa pun di sana, jadi lebih baik menggunakan pengalihan yang satu itu :)
sumber