Am o problema cu doua reguli in .htaccess
asadar am urmatoarele doua reguli, sper ca se intelege ce vreau sa fac...
RewriteRule ^(.*).html\?(.*)$ index\.php?page=$1&$2 [L] RewriteRule ^(.*).html$ index\.php?page=$1 [L]
Problema este ca nu mi se trimit si alti parametrii GET in afara de "page", se pare ca doar ultima regula e luata in calcul chiar daca am link-ul main.html?test=1 in GET nu apare decat Array ( [page] => main )
Stie careva cum as putea sa rezolv asta?
Nu's expert in rewrite, dar daca scoti [L] cum se comporta?
Pai [L] din cate stiu eu inseamna "daca url-ul indeplineste regula curenta nu mai lua in seama restu!", deci in principiu [L] ar trebui sa rezolve problema, deci si daca l-am n-am rezolvat nimic.
http://adriansilimon.blogspot.com/
In manual vad ca zice altceva:
"Stop the rewriting process here and don't apply any more rewrite rules."
Care nu e chiar identic cu ce ai zis tu.
http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html#rewriteflags
Deci ai scos L si face la fel?
da am scol L si face la fel, dar mie mi se pare asta o comportare normala, adica tot acolo scrie "Use this flag to prevent the currently rewritten URL from being rewritten further by following rules"!
http://adriansilimon.blogspot.com/
index\.php?page=$1&$2 => index\.php?page=$1\&$2
Ajuta?
Csabi's BLOG
Linux registered user # 457717
Nup din pacate...
ce e curios e ca asa merge, adica primesc toate variabilele din GET:
RewriteRule ^(.*).html$ $1\.php [L]
Insa as prefera sa pot trimite numele paginii in GET sa nu fiu nevoit sa fac cate un php pentru fiecare pagina. Din ce am obs. problemele pornesc de la semnul ? in rewite-rule:
RewriteRule ^(.*).html\?(.*)$ index\.php?page=$1&$2
- care nu este luata in calcul delochttp://adriansilimon.blogspot.com/
Dupa "html" poti avea altceva decat semnul intrebarii? Daca nu, atunci in loc de "\?" pune punct "." sa ia in considerare orice caracter.
^(.*).html.(.*)$
Csabi's BLOG
Linux registered user # 457717
zici tu ceva, da nu e ce vreau eu... eu as vrea sa prind numele paginii dinainte de html in $1 si GET sa-l prind intr-un $2 ca apoi sa le pot trimite la index.php de forma asta
index.php?page=$1&$2
dar totusi o sa vad ce primesc cu regula propusa de tine, poate cu mici modificari reusesc.
http://adriansilimon.blogspot.com/
Da, eu am inteles ce ai vrut tu.
Ce nu stiu eu, cat de bine / performant / corect functioneaza apache cu regexp. Din punct de vedere regexp ce ai scris tu la regula este perfect, exact ca in Perl, dar in .htaccess nu prea m-am jucat cu din astea, de aceea ti-am recomandat varianta noua. Cine stie? Poate Apache nu stie sa faca abstractie de "?" ... nu am idee.
Csabi's BLOG
Linux registered user # 457717