Ошибка 500 при перезаписи карты в .htaccess

#apache #.htaccess #url-rewriting #rewritemap

#apache #.htaccess #url-переписывание #перезаписать карту

Вопрос:

У меня есть файл карты в этом формате

 233 Alabama/Phenix-City/Ridgebrook
237 Alabama/Ft.-Mitchell/Riverside-Estates
 

У меня есть следующий скрипт .htaccess. Я получаю внутреннюю ошибку сервера 500 при попадании на соответствующую страницу.

 RewriteEngine On
RewriteBase /
Options  FollowSymLinks

RewriteMap examplemap txt:/var/www/html/site.com/key_pair.txt
RewriteRule community.php?(.*) ${examplemap:$1} [R]
 

Когда я передаю следующий URL-адрес, я хочу, чтобы он был переписан следующим образом.

 http://example.com/community.php?comm_id=233    
 

должно быть переписано следующим образом

 http://example.com/Alabama/Phenix-City/Ridgebrook
 

Есть мысли?

Комментарии:

1. Вы могли бы просто использовать относительный путь, поэтому просто txt:key_pair.txt . Никаких других мыслей относительно того, что может быть причиной проблемы.

2. Ну, похоже, что сайт недоступен с помощью правила RewriteMap. Я только что протестировал другие страницы и не могу получить доступ ни к одной из них. Как только я закомментирую строки из файла .htaccess, сайт запускается.

3. Интересно, отправляется ли карта перезаписи в файл .htacess или куда-то еще.

Ответ №1:

У вас не может быть RewriteMap в файле .htaccess:

http://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewritemap

Можно использовать только в конфигурации сервера (например, httpd.conf) и файлах вашего виртуального хоста conf.

Комментарии:

1. спасибо, я понял это. Мне сказали, что я не мог ответить на свой вопрос в течение 8 часов.