Невозможно обслуживать изображения Webp через htaccess mod_rewrite ⇐ Apache
Невозможно обслуживать изображения Webp через htaccess mod_rewrite
Прежде чем я начну объяснять свою проблему, я хочу отметить, что я студент BCA и в настоящее время нахожусь на этапе обучения. Я не опытный разработчик. Я работаю неполный рабочий день в ИТ-фирме в качестве старшего внутреннего специалиста по SEO (старший, потому что я работаю здесь более 2 лет). В настоящее время я изучаю Python и хорошо разбираюсь в HTML и CSS.
Проблема Недавно я решил обновить все изображения большого размера PNG/jpg на моем веб-сайте с помощью формата webp следующего поколения (как указано в Google Page Speed). Я следовал этому руководству с сайта web.dev (https://web.dev/articles/serve-images-webp) и с сайта Digital Ocean (www.digitalocean.com/community/tutorial ... -and-serve). -webp-images-to-speed-up-your-website), Поскольку веб-сайт моей компании довольно огромен и содержит около 70-80 тысяч страниц и более 100 тысяч изображений, я решил использовать метод mod_rewrite. Хотя я могу использовать PHP или даже Python для редактирования HTML-файлов, но из-за большого количества страниц я выбрал метод mod_rewrite. Я добавил этот код в свой файл .htaccess, который находится в корне моего сайта.
Перезаписать двигатель включен RewriteCond %{HTTP_ACCEPT} изображение/webp RewriteCond %{REQUEST_URI} (?i)(.*)(\.jpe?g|\.png)$ RewriteCond %{DOCUMENT_ROOT}/assets/webp/$1.webp -f RewriteRule (?i)(.*)(\.jpe?g|\.png)$ %1\.webp [L,T=image/webp,R] Добавление заголовка Vary Accept env=REDIRECT_accept AddType изображение/webp .webp Здесь я внес небольшие изменения и добавил отдельный каталог для хранения веб-сайта (ROOT/assets/webp/). К сожалению, эта перезапись не работает.
Я искал в Интернете возможные решения, но все мои попытки оказались тщетными. Я попробовал множество способов устранить проблему, но не смог этого сделать.
[*]Я изменил имя соответствующего файла webp на img.png.webp [*]Я предполагаю, что поскольку я установил множество перенаправлений, в конфигурации Apache включен mod_rewrite. [*]Поскольку мы размещаемся самостоятельно, я попросил ИТ-специалиста перезагрузить сервер Apache.
Ничего не работает. В своей отчаянной попытке я даже попросил модель GPT AI исправить проблему, но мне предложили использовать те же методы устранения неполадок, которые я использовал выше.
Дополнительная информация
[*]Структура моей папки assets/webp — домен.com/assets/webp/. PNG-файлы находятся в каталоге domain.com/assets/img/. [*]Нет ошибок перезаписи в журналах Apache. [*]mod_rewrite и mod_headers включены. [*]Расположение .htaccess — корневое, т.е. mydomain.com/.htaccess (возможно, я помещаю его не в то место, IDK.)
После некоторых исследований и разработок, а также предложений из комментариев я обновил код следующим образом:
RewriteEngine включен RewriteCond %{HTTP_ACCEPT} изображение/webp RewriteCond %{REQUEST_FILENAME} (.*)\.(png|gif|jpe?g)$ RewriteCond /assets/webp/%{REQUEST_FILENAME}.webp -f RewriteRule ^ /assets/webp/%1.webp [L,T=image/webp,E=accept:1] Добавление заголовка Варьируется Принять Но это тоже не работает. Я в полном смятении. Перепробовал много всего со вчерашнего дня, ничего не работает.
Наконец-то исправление @arkascha дало мне окончательные правила разрешения в моем htaccess -
RewriteCond %{HTTP_ACCEPT} изображение/webp RewriteCond %{REQUEST_URI} ^/assets/img/(.+)(?:\.jpe?g|\.png)$ RewriteCond %{DOCUMENT_ROOT}/assets/webp/%1.webp -f RewriteRule ^ /assets/webp/%1.webp [L,T=image/webp,E=accept:1] Добавление заголовка Варьируется Принять
Прежде чем я начну объяснять свою проблему, я хочу отметить, что я студент BCA и в настоящее время нахожусь на этапе обучения. Я не опытный разработчик. Я работаю неполный рабочий день в ИТ-фирме в качестве старшего внутреннего специалиста по SEO (старший, потому что я работаю здесь более 2 лет). В настоящее время я изучаю Python и хорошо разбираюсь в HTML и CSS.
Проблема Недавно я решил обновить все изображения большого размера PNG/jpg на моем веб-сайте с помощью формата webp следующего поколения (как указано в Google Page Speed). Я следовал этому руководству с сайта web.dev (https://web.dev/articles/serve-images-webp) и с сайта Digital Ocean (www.digitalocean.com/community/tutorial ... -and-serve). -webp-images-to-speed-up-your-website), Поскольку веб-сайт моей компании довольно огромен и содержит около 70-80 тысяч страниц и более 100 тысяч изображений, я решил использовать метод mod_rewrite. Хотя я могу использовать PHP или даже Python для редактирования HTML-файлов, но из-за большого количества страниц я выбрал метод mod_rewrite. Я добавил этот код в свой файл .htaccess, который находится в корне моего сайта.
Перезаписать двигатель включен RewriteCond %{HTTP_ACCEPT} изображение/webp RewriteCond %{REQUEST_URI} (?i)(.*)(\.jpe?g|\.png)$ RewriteCond %{DOCUMENT_ROOT}/assets/webp/$1.webp -f RewriteRule (?i)(.*)(\.jpe?g|\.png)$ %1\.webp [L,T=image/webp,R] Добавление заголовка Vary Accept env=REDIRECT_accept AddType изображение/webp .webp Здесь я внес небольшие изменения и добавил отдельный каталог для хранения веб-сайта (ROOT/assets/webp/). К сожалению, эта перезапись не работает.
Я искал в Интернете возможные решения, но все мои попытки оказались тщетными. Я попробовал множество способов устранить проблему, но не смог этого сделать.
[*]Я изменил имя соответствующего файла webp на img.png.webp [*]Я предполагаю, что поскольку я установил множество перенаправлений, в конфигурации Apache включен mod_rewrite. [*]Поскольку мы размещаемся самостоятельно, я попросил ИТ-специалиста перезагрузить сервер Apache.
Ничего не работает. В своей отчаянной попытке я даже попросил модель GPT AI исправить проблему, но мне предложили использовать те же методы устранения неполадок, которые я использовал выше.
Дополнительная информация
[*]Структура моей папки assets/webp — домен.com/assets/webp/. PNG-файлы находятся в каталоге domain.com/assets/img/. [*]Нет ошибок перезаписи в журналах Apache. [*]mod_rewrite и mod_headers включены. [*]Расположение .htaccess — корневое, т.е. mydomain.com/.htaccess (возможно, я помещаю его не в то место, IDK.)
После некоторых исследований и разработок, а также предложений из комментариев я обновил код следующим образом:
RewriteEngine включен RewriteCond %{HTTP_ACCEPT} изображение/webp RewriteCond %{REQUEST_FILENAME} (.*)\.(png|gif|jpe?g)$ RewriteCond /assets/webp/%{REQUEST_FILENAME}.webp -f RewriteRule ^ /assets/webp/%1.webp [L,T=image/webp,E=accept:1] Добавление заголовка Варьируется Принять Но это тоже не работает. Я в полном смятении. Перепробовал много всего со вчерашнего дня, ничего не работает.
Наконец-то исправление @arkascha дало мне окончательные правила разрешения в моем htaccess -
RewriteCond %{HTTP_ACCEPT} изображение/webp RewriteCond %{REQUEST_URI} ^/assets/img/(.+)(?:\.jpe?g|\.png)$ RewriteCond %{DOCUMENT_ROOT}/assets/webp/%1.webp -f RewriteRule ^ /assets/webp/%1.webp [L,T=image/webp,E=accept:1] Добавление заголовка Варьируется Принять
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Нужна помощь с моей функцией пейджера PHP теперь, когда я использую mod-rewrite
Anonymous » » в форуме Php - 0 Ответы
- 30 Просмотры
-
Последнее сообщение Anonymous
-