.htaccess RewriteMap在mod rewrite中不工作

.htaccess RewriteMap在mod rewrite中不工作,.htaccess,mod-rewrite,rewritemap,.htaccess,Mod Rewrite,Rewritemap,我一直试图在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

我一直试图在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文件,但任何帮助都将不胜感激。

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


当您向服务器发出请求并解析
.htaccess
文件时,它会遇到
RewriteMap
指令并发出警报,从而引发500错误。您可能会在
错误日志中看到一个条目,其中指出“此处不允许重写映射”。

谢谢您的回答,那么您的意思是我必须将txt文件移动到服务器文件夹中的某个位置?我的根路径是/home/mobilevi/public\html。你建议我把地图文件放在哪里?不,这不是你的txt文件的问题,只是你不能在
.htaccess
中使用
RewriteMap
,因为这是不允许的。必须在服务器配置中进行设置,除非完全控制服务器,否则可能无法进行设置。你是在共享主机上,还是你自己控制服务器?很抱歉,我错过了你的答案,明白了,我现在在共享主机上,但我也有自己的服务器。谢谢你的回答