Я думаю, вы могли бы сделать это, чтобы заменить одну косую черту за подчеркиванием:
RewriteRule ^/(.+)/(.*?)$ /$1_$2 [N]
RewriteRule ^.*$ /stuff$0
Флаг [N]
заставляет Apache перезапустить процесс перезаписи URL из первого правила. Если у вас есть другие правила, которые применяются к URL до этих двух, помните, что они также будут вызываться на каждой итерации.
Альтернативой, которая может быть, а может и не быть более эффективной, было бы использование внешней программы для обработки перезаписи. Вы бы поместили это в свой конфигурационный файл Apache (вместо вышеуказанного)
RewriteMap slashtouscore prg:/usr/local/bin/slashtouscore.pl
RewriteRule ^/(.*)$ /stuff${slashtouscore:$1}
и тогда вам нужно будет создать исполняемый скрипт /usr/local/bin/slashtouscore.pl
с содержимым
#!/usr/bin/perl
$| = 1;
while (<>) {
s|/|_|g;
print;
}
(Конечно, это не должен быть скрипт на Perl, подойдет любая программа с той же функцией - и, конечно, имя файла может быть любым, если оно доступно для Apache)
Обратите внимание, что ничего из этого не проверено.