首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RewriteMap dbm .dir .pag

RewriteMap dbm .dir .pag
EN

Server Fault用户
提问于 2018-09-19 20:37:15
回答 1查看 1.2K关注 0票数 4

我一直在使用RewriteMap dbm,我能够使用文本版本,但是无法弄清楚我是如何或为什么会得到下面描述的错误。

虚拟主机:

代码语言:javascript
复制
DocumentRoot /var/www/sites/me
ServerName domain.com
RewriteEngine On
RewriteMap examplemap "dbm:/etc/httpd/conf/redirects.db"
RewriteRule (.*) ${examplemap:$1}

当我试图重新启动httpd时,它会抛出一个错误:

代码语言:javascript
复制
[root@mail me]# httpd -t
AH00526: Syntax error on line 367 of /etc/httpd/conf/httpd.conf:
RewriteMap: file for map examplemap not found:/etc/httpd/conf/redirects.dbm.dir

.dir从哪里来?

我创建了一个httxt2dbm文件redirects.db.dir,这使得错误消失了。

几个问题,如果我编辑行:

代码语言:javascript
复制
RewriteMap examplemap "dbm:/etc/httpd/conf/redirects.db"

至:

代码语言:javascript
复制
RewriteMap examplemap "dbm:/etc/httpd/conf/redirects.db.dir"

我得到:

代码语言:javascript
复制
RewriteMap: file for map examplemap not found:/etc/httpd/conf/redirects.dbm.dir.dir

第二个问题:

代码语言:javascript
复制
[root@mail me]# tail -f /var/log/httpd/error_log
[Wed Sep 19 20:32:42.282075 2018] [rewrite:error] [pid 4136] (2)No such file or directory: [client 50.76.6.29:56744] AH00663: mod_rewrite: can't access DBM RewriteMap file /etc/httpd/conf/redirects.db.pag

pag文件从哪里来?

我怎么才能让这件事变得快乐和有效呢?

EN

回答 1

Server Fault用户

回答已采纳

发布于 2018-09-20 13:24:17

是的,只创建了一个文件: httxt2dbm -f db -i /etc/httpd/conf/redirects.txt -o /etc/httpd/conf/redirects.db

如果您指定了db (即。作为DBM类型(-f DBM_TYPE参数),在创建文件时,您可能也应该将此dbm类型包含在RewriteMap指令中。.dir.pag不是伯克利DB文件,所以我怀疑Apache正在使用另一种默认(可能是SDBM?)为了你重写的地图。

例如:

代码语言:javascript
复制
RewriteMap examplemap "dbm=db:/etc/httpd/conf/redirects.db"

或者,在创建数据文件(使用-f db )时,删除httxt2dbm参数,以便Apache使用其默认参数。(除非您特别需要伯克利DB文件。)

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/931763

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档