строку
RewriteCond %{REQUEST_FILENAME} .*\.jpg
можно выкинуть (Вы все равно проверяете что это jpg в следующей строке), а вместо нее поставить проверку, что в имени запрошенного файла не содержится "-small".
Дело в том, что Вы преобразуете имя файла, добавляя в него "-small" и не меняя каталога файла.
И после третьей строки (с флагом [L]) у Вас запрашивается файл в том же каталоге и к нему снова применяются все строки из того-же файла .htaccess (если б Вы сменили каталог, файл .htaccess был бы другой), и в него еще раз добавляется "-small".
Поэтому, если преобразуется имя файла, но он остается в том же каталоге, важно не допустить повторного применения к имени файла уже примененного не предыдущем шаге преобразования.
RewriteCond %{HTTP_REFERER} ^http://.*\.livejournal\.com/?.* [NC] RewriteCond %{REQUEST_URI} !.*-small\.jpg RewriteRule ^(.*)\.jpg$ $1-small.jpg [L]
Если не найдете решение проблемы, можно ее обойти, заменив "%C2%AB" (и другие уникодные символы) шаблоном ".{1,2}"
RewriteRule ^2008/01/28/mixail-pogrebinskij-.{1,2} http://mysite.com/news/500/
Почему {1,2} ?
У меня на локальном сервере mod_rewrite воспринимает %C2%AB как два символа, но для гарантии я допустил что может быть и один символ.
Виноват, лопухнулся с копированием\вставкой при написании первого варианта кода.
Надеюсь второй и теретий приведенные мною варианты рабочие (третий вариант допустим если не используются поддомены, которые не нужно склеивать).
domain.com (без www) здесь главное зеркало (или основной домен при использовании другой терминологии)
поискал в сети про склейку, например
http://zweroboy.net/domeny/sklejjka-domenov.html
не нашел больших отличий от данного случая, но там все работает
У меня такое подозрение, что у Вас где-то происходит преобразование домена до преобразований в файле .htaccess
И преобразуется домен не в osnovnoidomen.ru, а в zerkalo2.ru (или другое из зеркал). Возможно это будет видно в файле логов сервера access_log. Советую Вам зайти на некую страничку домена osnovnoidomen.ru и после этого посмотреть access_log (какой домен записался там для данного запроса). Если там будет записан другой домен, то нужно либо его делать основным, либо что-то менять в настройках в админке хостинга.
Однозначно перед началом любых преобразований (в данном случае сразу после строки "RewriteEngine On")
Иначе посетители будут переадресованы на уже преобразованный адрес (index.php с параметрами).
А вот почему не работает, не понимаю...
Приведенные выше строки файла .htaccess никак не должны повлиять на это.
Проблема в чем-то другом.
Такое возможно, но не из-за ошибки на сервере, а из-за браузера. Мне известно о таких случаях с оперой. Если в опере отключено автоматическое перенаправление, то на страницах с перенаправлением она будет показывать 302 document has moved here. И переход происходит только после клика по ссылке под этим сообщением. Лечится изменением настроек оперы.
Надеюсь у Вас 5 зеркал и шестой основной домен (он не входит в число "5 зеркал" и не вставлен в одно из правил RewriteCond) :)
А если серьезно, то при наличии еще каких-то строк с операторами после
RewriteRule ^(.*)$ http://osnovnoidomen.ru/$1 [R=301,L]
эти последующие строки могут при некоторых условиях вступать в конфликт с результатами предыдущих преобразований. Что там у Вас еще есть, неизвестно. Например, если дальше встречаются строки
Alias .....
то нужно как-то их обойти (нужно читать мануалы)
И дополнительно:
есть вариант, когда не нужно перечислять зеркала:
RewriteCond %{HTTP_HOST} !^osnovnoidomen\.ru$ [NC] RewriteRule ^(.*)$ http://osnovnoidomen.ru/$1 [R=301,L]
У Вас картинка отображается как строчный элемент (по умолчанию:inline) и центрируется соответственно по базовой линии текста.
Вот и зазор появляется в некоторых браузерах.
Чем больше размер шрифта, тем больше зазор. Можно сделать шрифт 1рх, но все равно может быть криво.
Лучше сделать img блочным элементом, добавив для него "display:block;"
Или в стилях пропишите
#page img {
display:block;
}
Неправильно.
В приведенном Вами коде все условия RewriteCond объединятся оператором AND (он используется по умолчанию, если не указан OR) и в результате правило RewriteRule никогда не выполнится (не может быть HTTP_HOST одновременно быть равен всем пяти зеркалам).
Нужно так
RewriteEngine On RewriteCond %{HTTP_HOST} ^zerkalo1\.ru$ [NC,OR] RewriteCond %{HTTP_HOST} ^zerkalo2\.ru$ [NC,OR] RewriteCond %{HTTP_HOST} ^zerkalo3\.ru$ [NC,OR] RewriteCond %{HTTP_HOST} ^zerkalo4\.ru$ [NC,OR] RewriteCond %{HTTP_HOST} ^zerkalo5\.ru$ [NC,OR] RewriteRule ^(.*)$ http://osnovnoidomen.ru/$1 [R=301,L]
или сделать одно условие
RewriteEngine On RewriteCond %{HTTP_HOST} ^(zerkalo1|zerkalo3|zerkalo3|zerkalo4|zerkalo5)\.ru$ [NC] RewriteRule ^(.*)$ http://osnovnoidomen.ru/$1 [R=301,L]
а для поисковиков сделать robots.txt
User-agent: * Allow: /index.html Disallow: /
(разрешить index.html и запретить все остальное)
то, что есть папка beta, в robots.txt лучше не светить...
Это задается одним из параметров метода getURL в коде самой флешки при ее создании
getURL(URL, window)
где window может иметь значения "_self", "_blank", "_parent", "_top" или имя окна