Domanda

Vorrei impostare condizionatamente scade le intestazioni sulle immagini in modo che non cacheranno mentre un progetto è in fase di sviluppo ma lo faranno quando è in produzione. Idealmente questa sarebbe solo una modifica del file Apache Conf. Ho uno script Perl che restituirà lo stato del progetto, che può essere utilizzato con mod_rewrite come segue:

rewritemap  PSTAT prg:/bin/pstat.pl
...skipping...
rewritecond ${PSTAT:$site:$1} =devel
rewriterule ^/run/$site/p(\d+)/(\w+) /logout.pl/$2 [NS,L]

Sarebbe bello se potessi fare qualcosa di simile:

rewritecond ${PSTAT:$site:$1} =devel
ExpiresByType image/jpg "now plus 1 second"

Anche se ovviamente non funzionerebbe.

C'è qualche soluzione?

È stato utile?

Soluzione

Un trucco che ha funzionato per me è impostare prima le intestazioni:

ExpiresByType image/jpg "now plus 1 second"
...

E poi per sconfiggere l'intestazione nel caso in cui siamo in modalità sviluppa:

Header set Cache-control "no-cache" env=devel
Header unset expires env=devel

Ciò richiede che tu abbia un env booleano devel precedentemente inizializzato in base alla modalità. Nel nostro caso decidiamo il nome host se vogliamo essere sviluppato o meno (devel.domain.com vs. www.domain.com).

Altri suggerimenti

A partire da ciò che Alienhard ha detto che sono riuscito a trovare una risposta al mio problema.

rewritemap  PSTAT prg:/bin/pstat.pl
...skipping...
rewritecond ${PSTAT:$site:$1} =devel
rewriterule ^/images/(\d+)/(\w+) - [E=devel:1]

header set cache-control "no-cache" env=devel
header unset expires env=devel

(/images/(\d+) è la cartella delle immagini per un particolare numero di progetto (\d+))

Il E bandiera di rewriterule Ti consente di impostare una variabile di ambiente nel caso che la regola corrisponda. - In realtà non riscrive nulla. Pertanto, questo controlla l'output dello script usando rewritecond inviandolo il numero di progetto dal rewriterule, quindi imposta la variabile di ambiente nel caso che entrambe le condizioni corrispondano. Quindi header Condizionalmente viene impostato in base alla presenza di quella variabile di ambiente.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top