. Htaccess PHP oturum değişkenler alın

4 Cevap php

Bu Apache. Htaccess dosyasında php $ _SESSION dizideki verileri okumak mümkün mü? Yani şu var ki:

$_SESSION['foo'] = 'bar';

. Daha sonra htaccess gibi bir şey yapabilirsiniz:

RewriteRule bla.png folder/{the php session var foo}/file.png

Bu mümkün mü?

Zaten çalışan bir çözüm var ama bu mümkün olup olmadığını bu şekilde daha güzel olurdu.

4 Cevap

Ben onun mümkün farkında değilim.

Ama ben bir PHP komut dosyası yeniden içeren birkaç geçici çözümler düşünebilirsiniz.

Ben bu kolayca yapabileceği bir şey olduğunu sanmıyorum. Sen. Htaccess içinde% {HTTP_COOKIE} gibi bir şey kullanarak PHPSESSID okuyabilir, ancak oturum PHP gerçek verilere erişmek için ekstra bir sürü iş yapıyor, böylece siz (her nasılsa bu yeniden uygulamak gerekir yani saklandığı yerden veri okuma, de-serializing vb)

Ben bu belirli bir sorun veya geçerli olacak emin değilim ama RewriteMap mod_rewrite'ı için çok kullanışlı ve genellikle aşırı baktı direktifi olduğunu.

http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html#rewritemap

Eğer oturum değişkenleri önceden hesaplamak veya bunları bir metin dosyasına kaydediniz (onlar set olsun zaman belki) harita girişleri kolayca kullanılabilir istek ayrıntıları herhangi dayalı alınabilir.

Aksi halde, birlikte oturum değişkenin değerini belirlemek için Sessionıd kullanır ve kullanmak için yeniden yazma kuralı için uygun URL döndüren basit bir dış eşleştiricisini (ki kolay olurdu muhtemelen, bir PHP komut dosyası) koyabilirsiniz.

Siz istediğiniz şekilde bunu yapamazsınız.

Eğer gerçekten $ _SESSION değişkeni kullanıyorsanız belki bu $ _SESSION biri olarak aynı değere sahip olacaktır kullanabileceğiniz bir Apache çevre değişkeni var.

Look at the following list and see if any of them helps:
http://www.zytrax.com/tech/web/env_var.htm

Bunu böyle kullanmak gerekir:

RewriteRule bla.png folder/%{VAR_NAME}/file.png