我打算对表单进行 url 重定向:
从:
domain.com/A
进入
domain.com/someResourse/id/10
在这个重定向中,id 的基数从 改变了。 16 至 10 .
我想知道这是否可以使用 .htaccess
最佳答案
您可以使用 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 如果不应该转换其他一些 url,则在调用此 rewriteRule 之前。
您可以为 base 16 到 10 重写器使用其他语言,here's an example in PHP .
关于apache - .htaccess 中的数基转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6732038/