我一直试图在我的htaccess中使用RewriteMap指令进行简单的maping,但由于某种原因,我每次都会收到错误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文件,但任何帮助都会很感激。
答案 0 :(得分:8)
根据您的描述,您尝试通过RewriteMap
文件在每个目录上下文中定义.htaccess
,但这是不允许的。 RewriteMap
只能在主服务器配置或虚拟服务器部分的每服务器上下文中定义。
当您向服务器发出请求并解析.htaccess
文件时,它会遇到RewriteMap
指令并发出警报,从而导致500错误被抛出。您可能会在error_log
中看到“此处不允许重写地图”的条目。