Поправить .htaccess - водяной знак

Тема в разделе "Mod Rewrite / htaccess / ЧПУ", создана пользователем irkmos, 24 окт 2010.

Статус темы:
Закрыта.
  1. irkmos

    irkmos Создатель

    Регистр.:
    7 май 2007
    Сообщения:
    48
    Симпатии:
    4
    Ватермарк создается вот таким способом:
    в папку с картинками кидается файл .htaccess вот такого содержания
    DirectoryIndex index.php
    <FilesMatch "\.(gif|jpg|png)$">
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} -f
    RewriteRule ^(.*)$ /watermark/_watermark.php [T=application/x-httpd-php,L,QSA]
    </FilesMatch>
    в корень сайта ложится папка watermark с самим скриптом _watermark.php накладывающим водяной знак на фото.
    Путь к фотки такой: jpg/10/1.jpg - так работает на ура.
    Подскажите, что нужно подправить в .htaccess чтобы ватермарк отображался на картинках если она имеет такой путь:
    jpg/10/1.jpg?dummy=1913065439, где 1913065439 - не постоянное число.
     
  2. b0mzh

    b0mzh Писатель

    Регистр.:
    11 сен 2008
    Сообщения:
    9
    Симпатии:
    0
    не проще обойтись пхп скриптом?
     
  3. irkmos

    irkmos Создатель

    Регистр.:
    7 май 2007
    Сообщения:
    48
    Симпатии:
    4
    Нет, можно в свойствах картинки посмотреть ее адрес и сохранить без ватермарка. В моем случае это не проканает, знак на фотке остается.
     
  4. sema

    sema Постоялец

    Регистр.:
    18 май 2007
    Сообщения:
    95
    Симпатии:
    21
    А разве по умолчанию он так работать не будет?

    Если нет, то тут скорее всего не httaccess надо редактировать, а PHP файл, так не до конца проверка отлажена, не отсекаются параметры. В любом случае думаю лучше сначала глянуть в PHP.

    Хотя не сомневаюсь что найдутся умельцы, которые только по htaccess'у могут сказать что именно надо изменить.
     
  5. ShoxMaster

    ShoxMaster

    Регистр.:
    3 дек 2008
    Сообщения:
    393
    Симпатии:
    150
    Проблема в PHP скрипте, т.к. с вашими правилами происходит редирект с любым QUERY_STRING. Если же вам строка запроса как раз мешает, то нужно сделать так:
    Код:
    <FilesMatch "\.(gif|jpg|png)$">
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} -f
    RewriteRule ^(.*)$ /watermark/_watermark.php? [T=application/x-httpd-php,L,QSA]
    </FilesMatch>
    
     
  6. irkmos

    irkmos Создатель

    Регистр.:
    7 май 2007
    Сообщения:
    48
    Симпатии:
    4
    Знак вопроса RewriteRule ^(.*)$ /watermark/_watermark.php? - проблему не решил.
     
  7. ShoxMaster

    ShoxMaster

    Регистр.:
    3 дек 2008
    Сообщения:
    393
    Симпатии:
    150
    Если хотите, чтобы проблему решили, то нужно больше конкретики: что за переменная dummy и зачем она? Лучше под хайд(желательно побольше) кинуть сам код скрипта.
     
  8. irkmos

    irkmos Создатель

    Регистр.:
    7 май 2007
    Сообщения:
    48
    Симпатии:
    4
  9. ShoxMaster

    ShoxMaster

    Регистр.:
    3 дек 2008
    Сообщения:
    393
    Симпатии:
    150
    Других вариантов, кроме как убить строку запроса не нашёл:
    Код:
    <FilesMatch "\.(gif|jpg|png)$">
    RewriteEngine On
    RewriteCond %{QUERY_STRING} !^$
    RewriteRule .* %{REQUEST_URI}? [R]
    RewriteCond %{REQUEST_FILENAME} -f
    RewriteRule ^(.*)$ /watermark/_watermark.php [T=application/x-httpd-php,L,QSA]
    </FilesMatch>
    
     
  10. Paroxizm

    Paroxizm Создатель

    Регистр.:
    30 июл 2009
    Сообщения:
    30
    Симпатии:
    11
    ИМХО, косяк должен быть в скрипте. Скорее всего неправильно берётся имя файла (параметры включаются в путь). К сожалению, посмотреть скрипт не могу, высокий хайд.
     
Статус темы:
Закрыта.