我打算做一个forms的URLredirect:
从:
domain.com/A
成
domain.com/someResourse/id/10
在这个redirect的id的基础从16更改为10 。
我想知道这是否可能使用.htaccess
你可以使用RewriteMap和外部程序映射(prg :)。 这是一个相当有利的使用mod重写,甚至是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”字符串。 你可能还需要在调用这个rewriteRule之前添加一些RewriteCond ,如果一些其他的url不应该被转换。
您可以使用其他语言的基本16到10重写器, 这里是一个PHP的例子 。
无法在.htaccess中进行计算。 但是您可以将请求发送到PHP(或其他语言)脚本,然后使用标头函数执行重定向。