mysql - RewriteMap MapType dbd 的问题

标签 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 部分并尝试将整个内容作为文件名读取。我真的不知道我做错了什么。

更新

我尝试简化这一点,仅使用 map 的直接文本文件:

RewriteMap hrci txt:/home/用户名/rewrite.txt

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

232+秋+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/,无标题。我到底做错了什么?!?

最佳答案

我发现 RewriteMap 中的 dbd 部分不起作用(至少对我来说)的原因是它应该只能在 apache 2.3+ 上工作。对于我的apache2.2,它不起作用。

关于mysql - RewriteMap MapType dbd 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7329212/

相关文章:

wordpress - 如何用 %23 重写 URL?

apache - 为什么 apache 服务器 redicect/doc 到 usr/share/doc

mysql - 在 MySQL 中转换数据

具有 4 个表的 MySQL QUERY;有没有办法让它更快并使用更少的资源?

apache - 如何增加 .htaccess 中的 apache 超时指令?

mod-rewrite - 就 SEO 友好的 URL 结构提出建议

php - (htaccess) 如何使文件只能由主机服务器访问并防止直接访问?

mysql - 长文本字段的数据过滤

MySQL - SQL_BIG_SELECTS

php - 使用 PHP 重写 URL