哪里允许使用 RewriteMap?

哪里允许使用 RewriteMap?

这看上去是一个非常简单的问题。

我尝试将 RewriteMap 指令放入 .htaccess 文件中,但日志显示警告:

RewriteMap not allowed here

然后我尝试将其放在 apache2/sites-available 文件中的 VirtualHost 声明中,但重新加载 apache 却出现以下情况:

RewriteMap not allowed here
...fail!

两种情况下均启用了 RewriteEngine。

这是指文件系统上实际映射的位置,还是 RewriteMap 指令?

以防万一有帮助:

<VirtualHost *:80>
  ServerName localhost
  etc...
  <Directory /var/www/site>
  AllowOverride all
  Options Indexes FollowSymLinks MultiViews
  Order allow,deny
  Allow from 127.0.0.1
  RewriteEngine On
  RewriteMap map txt:/var/www/site/map.txt
  RewriteRule /path/[^/]+/([^/]+) ${map:$1} 
  etc...

答案1

根据官方文档它只允许在服务器配置、虚拟主机的范围内(上下文:在信息框中)。将其放置在目录指令并且它会起作用。

相关内容