2010-07-22 2 views
4

Я пытаюсь сделать простое сопоставление с директивой RewriteMap в моем htaccess, но по какой-то причине я получаю ошибку 500 каждый раз. мой синтаксис .. Options + FollowSymLinksRewriteMap не работает в mod-rewrite

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, но любая помощь будет благодарна.

ответ

7

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

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

+0

Спасибо за ответ ,, , так что вы имеете в виду, мне нужно переместить файл txt где-нибудь в папке сервера? мой корневой путь /home/mobilevi/public_html Где вы рекомендуете я должен поместить свой файл карты? – Wasim

+0

Нет, это не проблема с вашим txt-файлом, просто вы не можете использовать 'RewriteMap' в' .htaccess', потому что это запрещено. Вы должны установить его в конфигурации сервера, которую вы, вероятно, не сможете сделать, если не полностью контролируете сервер. Вы используете общий хост или сами контролируете сервер? –

+0

извините, я пропустил, понял, что вы отвечаете, получил смысл сейчас, я нахожусь на хосте, но у меня также есть свой сервер. Спасибо за ответ, хотя – Wasim

 Смежные вопросы

  • Нет связанных вопросов^_^