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

Apache RewriteRule работает в 2.2.3, не работает в 1.3.41

Я создал следующее RewriteRule во время разработки сайта на нашем сервере разработки, на котором работает Apache 2.2.3:

RewriteEngine on
RewriteRule ^add-ons/(?!=details|download)(.+) /add-ons/details/$2 [NC]

В основном то, что я пытаюсь сделать, - это выбить / details / часть URL-адреса, чтобы у меня была ссылка типа example.com/add-ons/some-addon/ вместо example.com/add-ons/ подробности / some-addon /.

К сожалению, после выпуска этого на рабочий сервер с Apache 1.3.41 я получаю Error 500: Internal Server Error. Я играл с ним, но ничего из того, что я пробовал, не работает. Это ограничение Apache 1.3, может быть, упреждающий просмотр не разрешен?

Переписал его, используя RewriteCond вместо отрицательного просмотра вперед, похоже, это работает:

RewriteCond $0 !^add-ons/(details|download) [NC]
RewriteRule ^add-ons/(.+)$ /add-ons/details/$1 [NC,L]