4

我一直在尝试在我的 htaccess 中使用 RewriteMap 指令进行简单的映射,但由于某种原因,我每次都收到错误 500。我的语法是 .. 选项 +FollowSymLinks

RewriteEngine on
RewriteBase /
RewriteMap name2id txt:nklist.txt
RewriteRule ^/name/(.*) /name_list_view.php?kid=${name2id:$1|NOTFOUND}

在 nklist.txt :

1 David
2 Mark
3 Simon

nklist.txt 文件位于我网站的根目录,与 htaccess 相同的位置。据我的调试告诉我,htaccess 无法找到 nklist.txt 文件,但任何帮助将不胜感激。

4

1 回答 1

9

根据您的描述,您试图RewriteMap通过文件在每个目录上下文中定义 a .htaccess,但这是不允许的。RewriteMap只能在每个服务器的上下文中定义,无论是在主服务器配置中还是在虚拟服务器部分中。

当您向服务器发出请求并.htaccess解析文件时,它会遇到RewriteMap指令并发出警报,从而导致抛出 500 错误。您可能会在您的条目中看到error_log“此处不允许 RewriteMap”的条目。

于 2010-07-22T06:47:38.907 回答