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

Apache RewriteRule вызывает ошибку 500

Я пытаюсь использовать приложение для обработки изображений. Для этого требуется директива Apache в файле .htaccess. Но что бы я ни делал с RewriteRule, я не могу заставить его работать. Вызывает ошибку сервера 500.

Правило такое:

RewriteRule \.(?:jpe?g|gif|png)$ adaptive-images.php

Это должно взять любой файл jpg / gif / png и отправить его в adaptive-images.php файл, в котором будет выполняться процесс изменения размера изображения.

На данный момент у меня нет опыта работы с RewriteRules.

Первый параметр директивы RewriteRule - это регулярное выражение, поэтому вам нужно избежать точки: \.. Ваше правило также не будет соответствовать, потому что вам нужно сопоставить весь URI, а не только расширение файла. Таким образом .* необходимо, чтобы соответствовать тому, что может быть перед расширением (например, filename.jpg или /images/filename.jpg).

RewriteRule .*\.(?:jpe?g|gif|png)$ adaptive-images.php

Я не верю, что если вы забудете об этом, это приведет к ошибке 500, поэтому вам следует просмотреть журнал ошибок Apache для получения дополнительных сведений, если это не решит проблему.

Кроме того, использование этого перенаправления никуда не «отправит» файл изображения, если только вы не проделаете некоторые уловки в PHP для чтения HTTP-реферала, поскольку в противном случае перенаправленная страница не будет знать, какое изображение было «передано».