OK, I have fixed it - really through blind luck - as follows:
- Completely new install, to get rid of any previous fixes I’d tried.
- Pointed to the existing database and copied the public directory etc. over.
- Added a php.ini file to the root of my install, which contains a single line:
auto_prepend_file = set_path_info.php
- Added that PHP file (also to the root of the install, as you’d expect) as follows:
<?php
if (getenv('ORIG_PATH_INFO')) {
putenv("PATH_INFO=".getenv('ORIG_PATH_INFO'));
}
if ($_SERVER['ORIG_PATH_INFO']) {
$_SERVER['PATH_INFO'] = $_SERVER['ORIG_PATH_INFO'];
}
if ($_ENV['ORIG_PATH_INFO']) {
$_ENV['PATH_INFO'] = $_ENV['ORIG_PATH_INFO'];
}
?>
- Set
disable_path_info = Off
Thanks for your help @asmecher!