Profil detayı eklendi, herkes profillerine girip bir gözatsın! Sevdiğiniz üyelerin cevaplarını takip edin! Tüm güncellemeler

Htaccess search url RewriteRule

Merhabalar,


search.php?q=aranilanSozcuk


yapısını


siteadi.com/ara/q=aranilanSozcuk


ile değiştirmeye çalışıyorum bir çok kod denedim 3 saattir çözemedim.


RewriteRule ^ara/(.*)$ search.php?q=$1   [L,NC]


kodu


siteadi.com/ara/aranilanSozcuk 


mantığı için çalışıyor fakat bana get paremetreside lazım böylece google mantığında ileride seo search snippet kurabilirim.


Bu ara şu kod biraz işime yaradı


RewriteCond %{THE_REQUEST} \ /search(?:\.php|)\?q=([^\ &]+)
RewriteRule ^ /%1? [L,R]


fakat siteadi.com/?q=aranilanSozcuk olarak değer gönderip index.php ile get'e düşen veriyi alabiliyorum fakat ara/ dizinine yani subdirectory'e atamadım.


Yapmak istediğim yapı sonkez aşağıda ki gibi


siteadi.com/ara/q=aranilanSozcuk



şimdiden teşekkürler.

1

Cevaplar (1)

İşlem devam ediyor, lütfen bekleyin..
Tayfun Erbilen
Doğru Cevap
@tayfunerbilen
4 ay önce

[QSA] eklemen lazım get değerlerini alabilmek için. Senin istediğini yapmak için kullanman gereken kod;


RewriteEngine On
RewriteCond %{QUERY_STRING} ^q=(.*)$
RewriteRule ^ara(/?)$ search.php?q=$1 [QSA]


Benim tavsiyem ise bu şekilde yapmak yerine search.php'yi ara değerine dönüştürmek ve form'da ara'ya get değeriyle veri göndermek. Yani;


RewriteEngine On
RewriteRule ^ara(/?)$ search.php [QSA]


HTML form örneğin;


<form action="ara" method="get">
    <input type="text" name="q"> <br>
    <button type="submit">Ara</button>
</form>


search.php örneğin;


<?php

echo $_GET['q'];


Tercih senin :) İki türlüde search.php'de $_GET['q'] ile değeri alabilirsin.

Cevapla @zaferos4 ay önce
@tayfunerbilen 7 yıldır severek takip ettiğim bir mentor olarak heryerden hızlıca destek vermene de bayılıyorum doğrusu :) işte uzmancevap farkı
İşlem devam ediyor, lütfen bekleyin..

Cevap yaz Sadece sorunun cevabını yazın