Назад | Перейти на главную страницу

Код внутренней ошибки htaccess 500

когда я пытаюсь сделать 301 редирект, я получаю внутренний код ошибки 500:

Rewriterule ^categoy/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)? product_detail.php?category=$1&subcategory=$2&product=$4 [QSA,NC]

Поле RewriteMap:

RewriteMap lc int:tolower
RewriteCond %{REQUEST_URI} [A-Z]
RewriteRule (.*) ${lc:$1} [R=301,L]

любое предложение, почему я получаю эту ошибку?

Спасибо

Директивы RewriteMap не разрешены в файле .htaccess. Это должно быть записано в файле конфигурации Apache httpd.conf.

Когда вы получите сообщение об ошибке 500 от Apache, Apache отметит Зачем это дало вам эту ошибку в вашем error_log, куда бы это ни было настроено. Обратитесь к сообщению об ошибке в этом журнале, чтобы узнать, что вы делаете не так.

хорошо ... давайте проясним некоторые вещи.

Rewriterule ^categoy/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)? product_detail.php?category=$1&subcategory=$2&product=$4 [QSA,NC]

Здесь много лишнего, например, NC все равно не учитывает регистр ... Я немного отформатировал ваш код:

RewriteMap lc int:tolower 
RewriteCond %{REQUEST_URI} [A-Z] 
RewriteRule (.*) ${lc:$1} [R=301,L]

о каком правиле вы сейчас говорите? из вашего заголовка (301) я думаю второй. ваше условие перезаписи выглядит странно. но, однако, наиболее распространенной причиной ошибки 500 в отношении правил перезаписи является отсутствие разрешений. убедитесь, что вы делаете AllowOverride All в конфигурации вашего сервера или переместите туда свои правила (что дает больше производительности, чем в файлах htaccess)