RewriteMap не работает в mod-rewrite - PullRequest
4 голосов
/ 22 июля 2010

Я пытался сделать простое сопоставление с директивой RewriteMap в моем htaccess, но по какой-то причине я получаю ошибку 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, но любая помощь будет благодарна.

1 Ответ

8 голосов
/ 22 июля 2010

Из вашего описания вы пытаетесь определить RewriteMap в контексте для каталога через ваш файл .htaccess, но это не разрешено. RewriteMap можно определить только в контексте сервера, либо в конфигурации основного сервера, либо в разделе виртуального сервера.

Когда вы отправляете запросы на сервер и файл .htaccess анализируется, он встречает директиву RewriteMap и выдает предупреждение, которое приводит к выдаче ошибки 500 Скорее всего, вы увидите в вашем error_log запись, которая гласит: «RewriteMap здесь не разрешен».

...