GET parametrelerini yeniden yazılmış URL'ye nasıl aktarabilirim?


14

Ben böyle bir .htaccessyeniden yazma kuralı var :

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

Birisi ziyaretleri ne yapar, olduğu http://example.com/search/testgerçekten işlenir URI http://www.example.com/search.php?q=test.

Şimdi, yeniden yazılmış URL'ye fazladan rastgele bir GET parametresi iletmeye çalışırsam, parametre yoksayılır. Bu yüzden burada ziyaret etmeye çalışırsam:

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

Parametre extrayoksayılır. Hiç geçmemiş gibi görünüyor.

Bu sorun çözülebilir mi? Öyleyse nasıl?

Yanıtlar:


15

Aradığınız Query String Append bayrak - örneğin

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

RewriteRule bayraklarının tam açıklaması için mod_rewritebelgelere bakın .


Ah güzel! Böyle bir şey olduğunu biliyordum. Ben bir .htaccessçaylağım.
— Jake Wilson

Tüm kurallara QSA eklemenin bir yolu var mı
— hakkikonu

Merhaba @danlefree Eski bir soru olduğunu biliyorum, ama Wamp kullanarak, bunu yaptığımda, tüm stil sayfaları, komut dosyaları vb referans kaybeder. bunu nasıl çözebilirim?
— DannyGM
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.