Intereting Posts

Объявление сеанса Максимальное время жизни в htaccess

Мне интересно, можем ли мы объявить параметр session.gc_maxlifetime в .htaccess для одного конкретного проекта вместо всего веб-сервера?

Если да, то как мы можем это сделать? Как следующий код?

php_value session.gc_maxlifetime 2000

Я пробовал, и это не сработало, а также я создал файл php.ini в том же каталоге моего проекта, и он тоже не работал.

Благодарю.

Да, session.gc_maxlifetime – это параметр PHP_INI_ALL, поэтому его можно переопределить в .htaccess:

 php_value session.gc_maxlifetime 2000 

Также убедитесь, что запись <Directory> в вашей конфигурации Apache поддерживает переопределение:

 AllowOverride Options 

Возможно также, что вы неправильно поняли цель этого варианта. Этот параметр не устанавливает максимальный срок службы сеанса , он устанавливает время, в течение которого сборщик мусора очистит сеанс, если он недействителен. Это может быть определено множеством факторов, включая время доступа, время модификации, другие параметры INI, такие как session.gc_probability и session.gc_divisor .

Если вы хотите ограничить время жизни сеанса, используйте для этого подходящий механизм, описанный @Gumbo в разделе « Как закончить сеанс PHP через 30 минут» .

Насколько я могу видеть, значение gc_maxlifetime может быть установлено в любом месте:

http://php.net/manual/en/session.configuration.php

http://www.php.net/manual/en/configuration.changes.modes.php

Таким образом, вы также можете установить его через ini_set(...) в php-файле, включенном во все ваши страницы.

Во всяком случае, я думаю, что ваш код в .htaccess также должен работать. Возможно, вы пропустили что-то еще, например

 php_value session.save_path "/PATH/TO/SESSIONS" 

где PATH / TO / SESSIONS – это путь к папке, в которой у вас есть 777 прав доступа.