Apache Rewrite: изображения галереи для конкретного домена в каталоге% {HTTP_HOST} - PullRequest
0 голосов
/ 17 февраля 2012

На общем веб-хостинге мое программное обеспечение поддерживает несколько доменов (все домены указывают на один и тот же корневой каталог public_html).Каждый домен имеет свою собственную галерею (в каталоге галереи).Поскольку несколько доменов не могут иметь свои собственные ресурсы (например, изображения) в одном каталоге для всех сайтов, у меня есть корневые каталоги, которые соответствуют каждому имени хоста HTTP.Вот как выглядит структура каталогов ...

/ public_html /

/ public_html / .htaccess

/ public_html / gallery /

/ public_html / www.example1.com / gallery / topic_x / image.png

/ public_html / www.example2.com / gallery / topic_y / image.jpg

/ public_html / www.example3.com/gallery/topic_z/image.gif

Запрос на ...

http://www.example1.com/gallery/topic_x/image.png

...необходимо переписать в ...

/ public_html / www.example1.com / gallery / topic_x / image.png

Это нужно сделать с помощью.Файл htaccess, как отмечалось выше, в соответствующих каталогах хоста HTTP нет файлов .htaccess (/public_html/www.example1.com/.htaccess не существует).

Я пытался с многочисленными модификациямиследующее ...

RewriteEngine on
RewriteCond %{ENV:REDIRECT_STATUS} !200
RewriteRule ^(gallery)(/.+\.(gif|jpg|png))$ %{HTTP_HOST}$1$2 [L,NC]

... безуспешно.

1 Ответ

1 голос
/ 17 февраля 2012

Это работает для меня:

RewriteRule ^(gallery/.+\.(gif|jpg|jpeg|png))$ /%{HTTP_HOST}/$1 [L,NC]

Если вы хотите - вы можете добавить дополнительную проверку для перезаписи, только если присутствует такое окончательное изображение (хотя я не проверял это):

RewriteCond {%DOCUMENT_ROOT}/%{HTTP_HOST}/$1 -f
RewriteRule ^(gallery/.+\.(gif|jpg|jpeg|png))$ /%{HTTP_HOST}/$1 [L,NC]

Но даже ваш шаблон должен работать (по крайней мере, он проходит тест) - возможно, .htaccess не включен .. или вы забыли активировать механизм перезаписи (RewriteEngine On)?

Я бытакже рекомендуем добавить эту строку перед (или после) активацией движка:

Options +FollowSymLinks

или

Options +SymLinksIfOwnerMatch

Некоторые виртуальные хостинги могут работать только со вторым, для некоторых достаточно 1-го.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...