RewriteMap MapType dbd的问题

时间:2011-09-07 05:24:30

标签: mysql .htaccess mod-rewrite rewritemap

继续在这里进行另一次讨论:

MySQL + htaccess mod_rewrite?

我被要求开始另一个问题。

我将其添加到我的httpd.conf文件中:

DBDriver mysql
DBDParams "host=*****,user=*****,pass=*****,dbname=*****"
RewriteEngine On
RewriteMap hrci "dbd:SELECT title FROM challenges WHERE id = %s"

当我尝试重启Apache时出现此错误:

RewriteMap: file for map hrci not found:/dh/apache2/apache2-ps54462/dbd:SELECT title FROM challenges WHERE id = %s

看起来它完全忽略了dbd部分,并尝试将整个事物作为文件名读取。我真的不知道我做错了什么。

更新

我尝试简化此操作,只使用地图的直接文本文件:

RewriteMap hrci txt:/home/username/rewrite.txt

根目录中有一个文本文件,其中只包含以下内容:

232 + + Pillar + + Autumn + LASO

最后,我有我的重写规则:

RewriteRule ^ ch([0-9] {1,4})(/)?$ http://reachchallenges.infectionist.com/challenge/ $ 1 / $ {hrci:$ 1} [R = 301,L]

因此,访问路径ch232应该重定向到/challenge/232/The+Pillar+of+Autumn+LASO,而只是重定向到/challenge/232/,没有标题。我到底做错了什么?!?

1 个答案:

答案 0 :(得分:1)

我发现RewriteMap中的dbd部分无法正常工作(至少对我而言)的原因是它应该只能从apache 2.3+开始工作。对于我的apache2.2,它不起作用。