. Dual htaccess: $ _GET değişkeni boşaltır.

0 Cevap php

Şu anda benim Apache DocumentRootu benim index.php bulunduğu genel dizinden farklı olduğu bir proje üzerinde çalışıyorum. Garip nedeniyle bu kurulum, benim $ _GET süper küresel boşaltılması gibi görünüyor.

Directory structure:

  • / DocumentRoot
  • / DocumentRoot/.htaccess
    • / Public / .htaccess
    • / Public / index.php

Ilk. Htaccess işlendikten sonra terslik.

#First .htaccess in Apache documentroot:
RewriteEngine On
RewriteRule (.+) public/$1 [NC,L]

# Second .htaccess in /documentroot/public:
SetEnv APPLICATION_ENV testing
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

Some observations:

  • Birincil. Htaccess kaldırılması ve documentoot ek bir index.php verirken, benim $ _GET değişkenleri ince göstermek
  • When dumping $_GET in the / Public / index.php file, it is empty
  • Index.php çağrılırken gibi /? Foo = bar, $ _GET boş
  • Index.php Ararken / index.php? Foo = bar $ _GET gibi doldurulur

What could be causing the $_GET variable to be emptied? Herhangi bir yardım takdir edilmektedir.

EDIT: things just got a whole lot stranger:

Ben sağlam htaccess dosyaları. Hem bırakın ve bir index.php yerleştirdiğinizde (veya herhangi bir dizin. * Bu konuda) (ne olursa olsun içeriği) documentroot dosyasını, kamu / dizininde index.php dosyasında $ ayrıştırılır ve _GET değişken düzgün doldurulur.

0 Cevap