ugrás a tartalomhoz

.htaccess regexpben $10, $11 stb nem működik

chronos · 2006. Okt. 22. (V), 16.50
sziasztok

az a gondom, hogy a .htaccess mod_rewrite-ja valamiért nem hajlandó behelyettesíteni $9 után. szóval $10 és annál feljebb már nem megy, $1-et és utána egy nullát rak be. pl:
RewriteRule ^post(s)?(/(([0-9]+)(/(([a-zA-Z0-9-]+)(/(order/(asc|desc)(/)?)?)?)?)?)?)? index.php?post=$4&order=$11 [NC]
ezt kéne valahogy működésre bírni, mármint hogy $11 helyére tényleg a 11. értéket rakja be és ne az elsőt és utána egy 1-t...
hogy csináljam?
előre is kösz.
 
1

nincs $10, $11 és hasonlók

Hojtsy Gábor · 2006. Okt. 22. (V), 18.08
There’s no way to have a $10, for the simple reason that $10 is indistinguishable from $1 followed by a 0. Thus, it would be unclear whether we are attempting to use the variable $1 or the variable $10 in the context of a rewrite expression. So, if we want more than nine backreferences in our RewriteRule, we’re going to have to bring out the big guns and use a RewriteMap program. Within a RewriteMap, we can do whatever transforms we like without regard to a limited number of arguments.

Efölött, a Problem:We Have More Than Nine Arguments című részben találod a megoldást. Azaz erre kell írni szépen egy programot, mert az Apache magától $9 fölötti renferencia számokat nem támogat.
2

más?

chronos · 2006. Okt. 22. (V), 18.23
nem igazán akaródzik most megtanulni RewriteMap-et és Perlt használni, csak ha abszolút nincs más megoldás. van valami ötleted, hogyan lehetne rövidíteni a regexpen? legalábbis a zárójelek számát csökkenteni? egyet rendben el lehet tüntetni, a (s)?-t, de honnan vegyek ki még egyet, hogy a hatás ugyanaz maradjon? (tehát a post/id/nev/order/rendezes urleket alakítsa át index.php?post=id&order=rendezes alakúvá)

azóta sikerült megoldanom... a "[a-zA-Z0-9-]+" köré nem kellenek a zárójelek és akkor megy, $9 a rendezés...
3

úgyis eldobod, ami közötte van

Hojtsy Gábor · 2006. Okt. 22. (V), 18.35
Úgyis eldobod a köztes elemeket, akkor elég csak az elején az ID-t felszedni meg a végén a sorrendezés paramétert, nem? Minek azzal foglalkozni, hogy ennyi opcionális dolog lehet, amikor ezek nem kellenek neked?
4

hátha nem

chronos · 2006. Okt. 22. (V), 20.23
azért vannak ott azok a feltételes dolgok, hogy ne lehessen / nélkül egymás után fűzni a paramétereket, és mégse legyen katasztrófa, ha a felhasználó lehagy egyet a végéről vagy nem írja be valamelyik részt...
5

példák?

Hojtsy Gábor · 2006. Okt. 22. (V), 21.37
Szerintem jobban megérteném a problémát, ha írnál pár webcím mintát, hogy mire kellene működnie.
7

példa

chronos · 2006. Okt. 23. (H), 11.59
post, post/, post/356, post/356/, post/356/v-alami, post/356/v-alami/, post/356/v-alami/oldal/2, post/356/v-alami/oldal/2/

szerintem ennyi.
6

nem csoportosító zárójelek

Anonymous · 2006. Okt. 22. (V), 22.37
regexben vannak nem csoportosító zárójelek is. ezek ugyanazt a célt szolgálják, mint az egyszerű kerek zárójelek, azzal a kivétellel, hogy utána nem lehet rá $n módon hivatkozni.

gex
8

az milyen?

chronos · 2006. Okt. 23. (H), 12.01
a nem csoportosító zárójel az, ami (?...) alakú? azt azért nem használtam, mert a RexV (amivel kipróbálom a regexp-jeimet) hibát jelzett ha azt használtam - bár lehet, hogy nem jól írtam be.