Как установить директиву auto_prepend_file Php для каталога?

Предпосылки: У меня есть код, который проверяет, имеет ли пользователь действительный сеанс перед обработкой php-страницы, которую я хотел бы установить как auto_prepend_file. Тем не менее, мне нужно исключить страницу, на которой пользователь пытается войти с требуемого сеанса. Я хотел бы иметь возможность установить значение auto_prepend_file для каждого каталога.

Окружающая среда: PHP 5.2.6m Apache 2, запуск php как cgi не как mod_php, в Windows (если это имеет значение) и на машине, на которой я полностью контролирую (не размещенную среду)

Использование файла htaccess отсутствует b / c. Я не использую mod_php. Я не смог изменить php.ini для установки auto_prepend_file, сервер выдает внутреннюю ошибку. И ini_set () не работает b / c, он уже загрузил файл проверки сеанса, прежде чем я могу изменить значение auto_prepend_file.

Я не вижу способа установить auto_prepend_file для каждого каталога, если вы не используете mod_php / htaccess. Я что-то упускаю?

Используйте файлы .user.ini.

http://php.net/manual/en/configuration.file.per-user.php

Вы упомянули, что не можете использовать файлы .htaccess, но можете ли вы вносить изменения в httpd.conf и делать что-то вроде этого:

<Directory "c:/wamp/www/dev/"> Php_value auto_prepend_file c:/wamp/www/dev/prepend.php </Directory> 

EDIT – просто понял, что это не работает, когда работает как CGI. Я думаю, что одна вещь, которая сработает, – это создать копию файла php.ini, поместить его в каталог и поместить в него свою директиву prepend, например:

 auto_prepend_file = c:/wamp/www/dev/prepend.php 

Существует большой учебник под названием: Автоматически включать файлы с PHP и Apache, которые объясняют, как это сделать с директивой apache и PHP- кодом для добавления в конце. Сначала определите файл, чтобы поймать страницу до ее вывода и добавить все, что вы хотите:

 <?php { $script = <<<GA <script type="text/javascript"> var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-xxxxxxxxx-y']); _gaq.push(['_trackPageview']); (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })(); </script> GA; $replace = array('</body>','</BODY>'); $page = str_replace($replace, "{$script}\r</body>", $page); // $replace2 = array('</title>','</TITLE>'); // $page = str_replace($replace2, " - My Awesome Site</title>", $page); return $page; } ob_start("appendToFile"); ?> 

Затем добавьте директиву Apache на ваш виртуальный хост. Вам нужно добавить файл PHP для использования метода ob_start() :

 <Directory "/path/to/folder"> AddType application/x-httpd-php .html .htm php_value auto_prepend_file /absolute/path/to/apache-prepend.php </Directory>