.htaccess - RewriteMap 在 mod-rewrite 中不起作用

标签 .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 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/

相关文章:

php - 将子域重定向到 CakePHP 操作

php - 在 CakePHP 旁边的子文件夹中托管 phpBB3

css - 目录的默认 css 文件

当 Redirect 和 RewriteRule 一起使用时,.htaccess 重定向循环

php - CodeIgniter .htaccess index.php 重写不适用于用户目录

.htaccess 规则将图像文件的直接 View 重定向到页面,图像作为查询字符串传递

regex - 如何在rewritecond中匹配www和非www?

apache - 当获取没有index.php的目录时,htaccess不会重写URL