Использование внешнего массива RewriteMap
, т.е. программы которая действует как RewriteMap
. Она запускается один раз при старте Apache, получает запрошенные URL на входной поток
и должна помещать результирующиие URL (обычно преобразованные) в выходной поток
(в том же самом порядке!).
RewriteEngine on
RewriteMap quux-map prg:/path/to/map.quux.pl
RewriteRule ^/~quux/(.*)$ /~quux/${quux-map:$1}
#!/path/to/perl
# отключение буфферизованного I/O который привел бы
# к бесконечному зацикливанию и зависанию Apache
$| = 1;
# чтение URL один в строке из входного потока и
# генерация URL для подстановки в выходной поток
while (<>) {
s|^foo/|bar/|;
print $_;
}
Это только демонстрационный пример и тут просто все URL /~quux/foo/...
преобразуются в /~quux/bar/...
. В действительности вы можете запрограммировать здесь все что угодно. Примите во внимание, что хотя такие массивы и могут быть использованы, в том числе и обычным пользователем, однако определять их может только системный администратор.