Вопрос по .htaccess

12
KW
На сайте с 30.09.2007
Offline
38
2105

Здравствуйте.

Вопрос следующий.

Есть .htaccess в папке /images/ который накладывает на все картинки watermark

<FilesMatch "\.(gif|jpg|jpeg|png)$">

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^(.*)$ /watermark/watermark.php [T=application/x-httpd-php,L,QSA]
</FilesMatch>

Есть другой .htaccess в корне сайта, который выводит заглушку null.gif при запросе картинок сайта с других доменов.

Код добавлен в конце файла.

RewriteEngine On

RewriteBase /
RewriteCond %{REQUEST_FILENAME} .*jpg$|.*gif$|.*png$ [NC]
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !my_site.ru [NC]
RewriteCond %{HTTP_REFERER} !mail.ru [NC]
RewriteCond %{HTTP_REFERER} !yandex. [NC]
RewriteCond %{HTTP_REFERER} !google. [NC]
RewriteCond %{HTTP_REFERER} !feedburner. [NC]
RewriteCond %{HTTP_REFERER} !search?q=cache [NC]
RewriteRule (.*) null.gif

Но эта конструкция не работает.

А если закомментировать строки про watermark в .htaccess в папке /images/ , то начинает работать заглушка null.gif из корневого .htaccess.

Как можно заставить работать всю конструкцию целиком?

Спасибо за помощь.

iren K
На сайте с 28.12.2008
Offline
222
#1
kind_whale:

А если закомментировать строки про watermark в .htaccess в папке /images/ , то начинает работать заглушка null.gif из корневого .htaccess.

флаг L не пробовали убрать?

c уважением Iren
KW
На сайте с 30.09.2007
Offline
38
#2

так пробовал. результат прежний.

RewriteRule ^(.*)$ /watermark/watermark.php [T=application/x-httpd-php,QSA]

по-прежнему, отрабатываются правила в .htaccess в /images/ и при запросе с других доменов выводится картинка с watermark, вместо нужного результата - заглушки null.gif

F
На сайте с 17.05.2009
Offline
28
#3

А если убрать .htaccess с главной - то на все картинки в /images правильно накладывается вотермарк?

---------- Добавлено 24.08.2012 в 18:55 ----------

И может без FilesMatch, а попробуете вписать расширения картинок в директиру rewrite, как нибудь так

RewriteRule \.(gif|jpg|jpeg|png)$ /watermark/watermark.php [T=application/x-httpd-php,QSA]
KW
На сайте с 30.09.2007
Offline
38
#4

watermark накладывается при любых обстоятельствах.

видимо, по причине того, что .htaccess расположен ниже в папке /images/

а вот если закомментировать watermark, то корректно выдаётся null.gif для загрузки картинок с других доменов.

а как заставить работать всю конструкцию целиком - в этом и вопрос.

И может без FilesMatch, а попробуете вписать расширения картинок в директиру rewrite, как нибудь так

RewriteRule \.(gif|jpg|jpeg|png)$ /watermark/watermark.php [T=application/x-httpd-php,QSA]

при таком раскладе, всё равно не отображается заглушка null.gif , но watermark по-прежнему выводится.

F
На сайте с 17.05.2009
Offline
28
#5

А, тоесть проблема в том, что не работает заглушка в Images?

Попробуйте убрать

RewriteEngine On

в внутреннем .htaccess, он убивает директивы с "высшего" уровня

KW
На сайте с 30.09.2007
Offline
38
#6

Если убрать в нижнем .htaccess

RewriteEngine On

то не работает ни watermark, ни заглушка.

IL
На сайте с 20.04.2007
Offline
435
#7

Переместить всё в один (верхний) .htaccess

...

RewriteRule (.*) null.gif [L]
# добавить код
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^images/(.*)$ /watermark/watermark.php [T=application/x-httpd-php,L,QSA]
... :) Облачные серверы от RegRu - промокод 3F85-3D10-806D-7224 ( http://levik.info/regru )
KW
На сайте с 30.09.2007
Offline
38
#8

гениально. )) всё работает.

спасибо за помощь.

KW
На сайте с 30.09.2007
Offline
38
#9

Подскажите, пожалуйста, ещё такую штуку...

Есть код:

RewriteCond %{REQUEST_FILENAME} -f

RewriteRule ^images/(.*)$ /watermark/watermark.php [T=application/x-httpd-php,L,QSA]

Как сделать так, чтобы /watermark/watermark.php не отрабатывался на файлах, в имени которых содержится, допустим, "original" ?

M
На сайте с 16.09.2009
Offline
278
#10

Например, добавьте RewriteCond, где сравните %{REQUEST_FILENAME} с необходимым паттерном (отрицание паттерна можно указать, поместив символ ! в его начало).

Абонементное сопровождение серверов (Debian) Отправить личное сообщение (), написать письмо ().
12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий