Toon posts:

[APACHE 2] conditionele filter

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hoi,

Ik kwam net een best interessante module tegen (mod_tidy, for those who care). Deze module verifieert de HTML die de HTML output filter van Apache uitspuugt. Nu is deze module wel interessant, maar niet om altijd functioneel te hebben. Soms wil je even snel brakke HTML uitspugen om een bepaald resultaat te bekijken.

Nu is mijn vraag of het mogelijk is om deze filter alleen te activeren als er bijv ?tidy=1 in de query_string staat ? Of zijn er andere (betere) methoden om iets dergelijks te bewerkstelligen ? Misschien zelfs via apache_note() in PHP?

Verwijderd

Topicstarter
Goed, dan maar zelf opgelost en wel zonder mod_tidy. Die download deed het niet.

Apache 2 stelt je in staat zelf filters te schrijven d.m.v. mod_ext_filter; welke zover ik weet standaard bij apache2 wordt geleverd.

code:
1
2
3
4
ExtFilterDefine tidyfilter outtype=text/html ftype=20 mode=output \
 cmd="/home/purrrr/ApplyTidy.php" EnableEnv=apply-tidy

SetOutputFilter tidyfilter


ftype=20 staat voor de constante AP_FTYPE_CONTENT_SET en zorgt er voor dat dit filter pas wordt toegepast wanneer modules als PHP reeds klaar zijn. EnableEnv zorgt ervoor dat deze filter alleen draait wanneer de env variabele 'apply-tidy' beschikbaar is.

Ik kan deze filter nu aan en uit zetten door wel of niet
SetEnv apply-tidy 1 in een .htaccess bestand te plaatsen. Het liefst had ik dit door de URL gedaan ( /test.php/tidy ) maar dit kreeg ik zosnel nog niet voor elkaar:

code:
1
2
3
RewriteEngine on
RewriteBase /~purrrr/tidytest/
RewriteRule (.*?)/tidy $1 [E=applytidy:1]


Dit werkte niet :/. Heeft iemand daar ideeen over?

Verwijderd

Topicstarter
Oh, ApplyTidy.php is een php bestand dat STDIN inleest en vervolgens DMV exec() door tidy dondert.
Mijn versie echoed vervolgens een stukje javascript dat een popup met tidy resultaten weergeeft.