преобразование числа в .htaccess - PullRequest
4 голосов
/ 18 июля 2011

Я собираюсь сделать перенаправление URL формы:

от

domain.com/A

в

domain.com/someResourse/id/10

в этом перенаправлении база идентификатора изменяется с 16 на 10 .

Интересно, возможно ли это с помощью .htaccess

Ответы [ 2 ]

4 голосов
/ 18 июля 2011

Вы можете использовать RewriteMap с внешним отображением программы (prg :).Это довольно распространенное использование mod-rewrite и даже RewriteMap.

RewriteLock /var/lock/rewritemaplock.lock
RewriteMap base16to10 prg:/somewher/modrewritemapbase16to10.pl
RewriteRule - ${base16to10:%{REQUEST_URI}}

И для сценария perl (или любого другого языка), не протестировано

#!/usr/bin/perl
$| = 1; # Turn off I/O buffering
while ($uri=<STDIN>) {
    sprintf("/someResourse/id/%d",hex($uri)); 
}

Вам может понадобитьсядля тестирования и расширения программы, по крайней мере, вам необходимо вернуть строку «NULL» в случае ошибки.Вам также может понадобиться добавить RewriteCond перед вызовом этого rewriteRule, если не нужно преобразовывать какой-либо другой URL-адрес.

Вы можете использовать другие языки для базового устройства перезаписи 16–10, вот пример в PHP .

1 голос
/ 18 июля 2011

Невозможно делать вычисления в .htaccess.но вы могли бы отправить запрос в скрипт PHP (или некоторых других языков), где вы выполняете вычисления, а затем используете функцию заголовка для перенаправления.

...