Napotkałem problem z widocznością zmiennych z skryptach ładowanych include(); gdy używam rewriterules. Problem wygląda następująco:
Podstawowe skrypty strony trzymam w "public_html". Ze względu na to, że mam sporo skryptów dodatkowych, używanych we wszystkich podstawowych skryptach, umieściłem je w katalogu "public_html/scripts".
Napisałem rewriterules w taki sposób:
www.domena.com/jakikolwiek-tekst/skrypt_podstawowy.php -> ./skrypt_podstawowy.php
W skrypcie podstawowym ładuję skrypt dodatkowy przez include().
I teraz jest problem, bo gdy użyję include w taki sposób: "include('./scripts/skrypt_dodatkowy.php');" to szuka tego skryptu po url'em: www.domena.com/jakikolwiek-tekst/scripts/skrypt_podstawowy.php
Wszystkie skrypty działają na kilku domenach "com", "pl", "fr", "de" itp. Zdeklarowałem więc w skrypcie podstawowym zmienną, która zawiera adres domeny: $domena='www.domena.com/' (lub w przypadku innych domen narodowych, będzie to odpowiednio "domena.fr" lub "domena.de".
Dzięki temu, skrypt podstawowy robi:
include('www.domena.fr/scripts/skrypt_dodatkowy');
zamiast
include('./jakis-tekst/scripts/skrypt_dodatkowy');
No i pojawił się problem, bo nie widzę żadnej zmiennej w skryptach dodatkowych, ładowanych przez include() i odwrotnie: w skryptach podstawowych nie widzę zmiennych deklarowanych w skryptach dodatkowych.
Czyli serwer pewnie traktuje to jako wykonanie kodu z innego serwera i "globalnośc" zmiennych nie ma w tym przypadku znaczenia.
Ma ktoś jakiś pomysł co z tym zrobic?