Bagaimana cara menyampaikan parameter GET ke URL yang ditulis ulang?


13

Saya memiliki .htaccessaturan penulisan ulang seperti ini:

RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^search/(.*)$ search.php?q=$1

Apa yang dilakukan adalah, jika seseorang mengunjungi http://example.com/search/testURI yang benar-benar diproses http://www.example.com/search.php?q=test.

Sekarang, jika saya mencoba memberikan parameter GET acak tambahan ke URL yang ditulis ulang, parameternya diabaikan. Jadi, jika saya mencoba berkunjung ke sini:

http://www.example.com/search/whatever?extra=true

Parameter extradiabaikan. Sepertinya tidak lulus sama sekali.

Bisakah masalah ini diperbaiki? Jika ya, bagaimana caranya?

Jawaban:


14

Anda mencari bendera ppend Query String A- mis

RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^search/(.*)$ search.php?q=$1 [QSA]

Lihat mod_rewritedokumentasi untuk keterangan lengkap tentang bendera RewriteRule.


Ah bagus! Saya tahu ada sesuatu seperti itu. Saya seorang .htaccessnoob.
— Jake Wilson

Apakah ada cara untuk menambahkan QSA ke semua aturan
— hakkikonu

Hai @danlefree Tahu ini pertanyaan lama, tetapi menggunakan Wamp, ketika saya melakukan ini, semua stylesheet saya, skrip dll kehilangan referensi. bagaimana saya bisa menyelesaikannya?
— DannyGM 4-15
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.