Potong “? _Escaped_fragment_ =” dan alihkan ke html / php

May 20 2019

Saya melihat beberapa tautan di Google Search Console dan tampilannya seperti ini:

example.com/somedir/3.html?_escaped_fragment_=

Bagaimana cara memotong bagian ini: ?_escaped_fragment_=dan mengarahkan ke file html / php saat ini?

Seharusnya seperti ini:

  • Pengguna memasukkan tautan ini: example.com/somedir/3.html?_escaped_fragment_=
  • dan dialihkan ke example.com/somedir/3.html

Saya menemukan cara yang mungkin, tetapi saya tidak dapat mengulangnya sendiri ... "Aturan Penulisan Ulang" ini mengalihkan ke halaman utama. Tapi saya tidak membutuhkan fitur ini ...

RewriteCond %{QUERY_STRING} ^_escaped_fragment_=(.*)$ RewriteRule ^(.*)$ http://www.%{HTTP_HOST}%1? [L,R=301]

Tolong bantu.

Jawaban

1 DocRoot May 20 2019 at 11:23

Perhatikan bahwa _escaped_fragment_parameter URL adalah bagian dari spesifikasi perayapan AJAX Google (tidak berlaku lagi sejak Oktober 2015) yang menggunakan #!URL gaya - jadi pastikan situs Anda masih tidak menggunakan ini.

RewriteCond %{QUERY_STRING} ^_escaped_fragment_=(.*)$ RewriteRule ^(.*)$ http://www.%{HTTP_HOST}%1? [L,R=301]

Ini adalah ide yang tepat, karena Anda perlu memeriksa nilai QUERY_STRINGvariabel server, namun, URL target mungkin salah. (Mungkin benar jika Anda masih menggunakan spesifikasi ini.)

Cobalah sesuatu seperti berikut ini:

RewriteCond %{QUERY_STRING} ^_escaped_fragment_=
RewriteRule (.*) /$1 [QSD,R=302,L]

Di atas harus mengarahkan URL formulir example.com/somedir/3.html?_escaped_fragment_=<anything>ke example.com/somedir/3.html.

The QSDflag (Apache 2.4+) diperlukan untuk menghapus string query dari URL target.

Perhatikan bahwa ini adalah pengalihan 302 (sementara). Hanya ubah ke pengalihan 301 (permanen) setelah Anda memastikannya berfungsi dengan baik - untuk menghindari masalah penyimpanan dalam cache. Pengalihan 301 disimpan dalam cache oleh browser (termasuk pengalihan yang salah).


Pengguna memasukkan tautan ini: example.com/somedir/3.html?_escaped_fragment_=

Pengguna biasanya tidak memasukkan tautan seperti ini. Mereka bahkan tidak boleh ditautkan atau diambil oleh mesin telusur kecuali mungkin ada kesalahan konfigurasi situs di beberapa titik? Jadi, bergantung pada bagaimana / dari mana URL ini ditautkan (periksa laporan di GSC), Anda bahkan dapat mempertimbangkan untuk memblokir URL ini? Sebagai contoh:

RewriteCond %{QUERY_STRING} ^_escaped_fragment_=
RewriteRule ^ - [F]

Di atas akan mengembalikan 403 Forbidden sebagai gantinya.