Autor | Zpráva | ||
---|---|---|---|
Misk@ Profil * |
#1 · Zasláno: 27. 2. 2013, 22:56:29
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¶m1=$2 RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^([^/]+)/([^/]+)/([^/]+)?/?/?$ /index.php?page=$1¶m1=$2¶m2=$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 * |
#3 · Zasláno: 28. 2. 2013, 19:13:41 · Upravil/a: Moderátor (editace znemožněna) 28. 2. 2013, 21:51:33
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¶m1=$2 RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^([^/]+)/([^/]+)/([^/]+)?/?/?$ /index.php?page=$1¶m1=$2¶m2=$3 |
||
Davex Profil |
#4 · Zasláno: 28. 2. 2013, 19:20:54
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! |
||
Časová prodleva: 11 let
|
0