Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Memelihara Data POST Semasa Ubah Arah dalam PHP dengan .htaccess?

Bagaimana untuk Memelihara Data POST Semasa Ubah Arah dalam PHP dengan .htaccess?

Linda Hamilton
Linda Hamiltonasal
2024-11-29 22:18:12804semak imbas

How to Preserve POST Data During Redirection in PHP with .htaccess?

Mengubah hala Data POST dalam PHP dengan .htaccess

Soalan:

Bolehkah data POST menjadi diserahkan kepada alamat palsu yang mengubah hala ke indeks halaman?

Senario:

Tapak web menggunakan fail .htaccess untuk mengubah hala semua permintaan ke index.php. Walau bagaimanapun, apabila menggunakan borang dengan kaedah POST untuk menyerahkan data ke alamat palsu, data POST hilang semasa pengalihan semula.

Analisis:

Lalai .htaccess peraturan yang digunakan dalam senario ini ialah:

RewriteRule send-mail index.php?send-mail [NC,L]

Peraturan ini mengubah hala permintaan ke index.php dengan betul, tetapi bendera [L] (terakhir) menghentikan pemprosesan selanjutnya dan membuang sebarang data POST.

Penyelesaian:

Untuk mengekalkan data POST semasa pengalihan, tukar bendera [L] kepada [P] (proksi):

RewriteRule send-mail index.php?send-mail [NC,P]

Penjelasan:

Bendera [P] bertindak serupa dengan [L] dengan menghentikan pemprosesan peraturan, tetapi ia juga mengarahkan modul proksi untuk mengendalikan permintaan secara utuh, termasuk sebarang data POST.

Tambahan Nota:

  • Permintaan GET terhad dalam jumlah data yang boleh dihantar berbanding permintaan POST.
  • Peraturan .htaccess untuk mengubah hala ke index.php ialah:
# serve files and dirs if they exist please, otherwise send to index
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . index.php

Atas ialah kandungan terperinci Bagaimana untuk Memelihara Data POST Semasa Ubah Arah dalam PHP dengan .htaccess?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn