Autor Zpráva
Misk@
Profil *
Chtěla bych poprosit o radu. Do funkčního htaccess bych chtěla zapsat přesměrování z formuláře odesílaného GET metodou.

na url: www.neco.tld/hledani => mám vyhledávací formulář (odesílaný GET)
když jej odešlu, tak nastane toto: www.neco.tld/hledani?vyraz=neco (coz (ten ?) nepobere přepisovací pravidlo a není to pěkné)
já bych potřebovala aby cílová url vypadala takto: www.neco.tld/hledani/neco

PS: nevím jak se to bude ve finále chovat k víceslovným výrazům s mezerou :-(

takto vypadá funkční htaccess (část):
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/?$ /index.php?page=$1

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/([^/]+)?/?$ /index.php?page=$1&param1=$2

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/([^/]+)/([^/]+)?/?/?$ /index.php?page=$1&param1=$2&param2=$3

Děkuji za jakoukoli radu
Kajman
Profil
Přesměrování by mělo jít takto nějak (před ostatními pravidly)
#RewriteBase /
RewriteCond %{QUERY_STRING} ^vyraz=([^&]+)$
RewriteRule ^(hledani)$ $1/%1? [R=302,L,NE]

Ale možná bude lepší v javascriptu při odeslání hledání rovnou upravit action formáláře (mezery a diakritiku vyřeší decodeURIComponent) a disablovat vyraz, aby nedocházelo k tomu zbytečnému přesměrování.

(coz (ten ?) nepobere přepisovací pravidlo a není to pěkné)
Aby ta proměnná prošla dál, stačí přidat správný flag u pravidla na řádku 3

RewriteRule ^([^/]+)/?$ /index.php?page=$1 [QSA,L]
Misk@
Profil *
Děkuji, alespoň pomocí [QSA,L] mi to předávání hodnoty začalo fungovat, moc děkuji.

Nechtěla jsem se vzdát bez boje, ale to pravidlo pro přesměrování mi nefunguje jak má. Umístila je ho nad předchozí pravidla i úplně na začátek, ale k přesměrování nedochází :-)
Stále když dám vyhledat je adresa tato: http://www.neco.tld/vyhledavani?hledany_vyraz=xxxx

Poradíte mi ještě jednou naposledy, prosím.

htaccess:
*nad tímto jsou jen pravidla pro přesměrování na doménu s www a ochrana proti linkování obrázků
#RewriteBase /
RewriteCond %{QUERY_STRING} ^vyraz=([^&]+)$
RewriteRule ^(hledani)$ $1/%1? [R=302,L,NE]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/?$ /index.php?page=$1 [QSA,L]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/([^/]+)?/?$ /index.php?page=$1&param1=$2

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/([^/]+)/([^/]+)?/?/?$ /index.php?page=$1&param1=$2&param2=$3
Davex
Profil
Misk@:
Jméno parametru a testovanou adresu v pravidle je samozřejmě potřeba změnit podle skutečnosti.
Misk@
Profil *
Děkuji moje nepozornost, upravila jsem na naše podmínky:
#RewriteBase /
RewriteCond %{QUERY_STRING} ^hledany_vyraz=([^&]+)$
RewriteRule ^(vyhledavani)$ $1/%1? [R=302,L,NE]

Přesměrování začalo fungovat ale skončí na této adrese:

http://www.domena.tld/data/web/virtuals/98567/virtual/www/vyhledavani/hledany_vyraz

:-(
Byla by pro mne ještě poslední rada co s tím?


Už jsem na to přišla, moc vám děkuji!

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0