我一直在尝试在我的 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 文件,但任何帮助将不胜感激。
最佳答案
根据您的描述,您试图定义一个 RewriteMap
通过您的 .htaccess
在每个目录的上下文中文件,但这是不允许的。 RewriteMap
只能在每个服务器的上下文中定义,无论是在主服务器配置中还是在虚拟服务器部分中。
当您向服务器和 .htaccess
发出请求时文件被解析,它遇到 RewriteMap
指令并发出警报,导致抛出 500 错误。您可能会在 error_log
中看到一个条目指出“此处不允许使用 RewriteMap”。
关于.htaccess - RewriteMap 在 mod-rewrite 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3306070/