gormarket

gormarket
Рейтинг
47
Регистрация
29.12.2010

В следующий раз постарайтесь внимательнее формулировать вопросы

Из Вашего первого вопроса вытекает вывод что Вам нужно перенаправить с

site.ru/all_keys_for_eset.rar на site2.ru/all_keys_for_eset.html

С учетом поправки должно быть так


RewriteRule ^первый_адрес$ http://site2.ru/второй_адрес [R=301,NC,L]

реальные адреса подставьте сами (в строке "первый_адрес" "http://site.ru/" убирается и перед точкой добавляйте "\", типа "all_keys_for_eset\.rar")

Попробуйте добавить в файл .htaccess в корневом каталоге сайта site.ru


RewriteRule ^(file)\.rar$ http://site2.ru/$1.html [R=301,NC,L]

Модуль mod_rewrite должен быть включен, т.е. где-нибудь выше добавленной строки должна быть строка

RewriteEngine on

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

Быть более уверенным в этом можно, найдя в логах сервера запрос от поисковика этой страницы с 301 редиректом в ответе.

Плохо то, что у Вас на самом сайте присутствуют ссылки и вида "/enciklopedia/vibiraem/329" и вида "/enciklopedia/329", отдающие одинаковый контент.

Попробуйте избавиться от ссылки "/enciklopedia" в левом меню, заменив ее на сайте на "/enciklopedia/vibiraem"

А от дублей страниц, которые поисковики уже проиндексировали придется избавляться 301 редиректами с помощью модуля mod_rewrite в .htaccess


RewriteRule ^enciklopedia$ http://%{HTTP_HOST}/enciklopedia/vibiraem [R=301,NC,L]
RewriteRule ^enciklopedia/([0-9]+)$ http://%{HTTP_HOST}/enciklopedia/vibiraem/$1 [R=301,NC,L]

В .htaccess добавить для главной


RewriteCond %{QUERY_STRING} ^$
RewriteRule ^index.php$ http://%{HTTP_HOST}/ [R=301,NC,L]

для страниц со строкой запроса (вида "/?.....")


RewriteCond %{QUERY_STRING} .+
RewriteRule ^$ http://%{HTTP_HOST}/index.php [R=301,QSA,L]

Можно еще перед каждой парой строк добавить

RewriteCond %{ENV:REDIRECT_STATUS} ^$

чтоб не применялось правило, если уже произошло какое-то преобразование в строках выше по .htaccess

weblad:
Я думал мой вариант для всех адресов работает

Для адреса "/index.php?action=content&id=1&blog=123" переменная $_SERVER['REQUEST_URI'] содержит всю эту строку, а не только "/index.php"


$text='<img alt src = http:/bla-bla.img border=0 alt = "картинка для вставки" style=\'margin:10px;border-bottom:30px #b0b0b0 solid;\'>';
preg_match_all('#["\']?[\w]+["\']? *= *(?:(?:[^ >"\']+(?= |$))|(?:["\'][^>]+["\']))#iU', $text, $matches);
print '<pre>';
print_r($matches);
print '</pre>';

Array

(

[0] => Array

(

[0] => src = http:/bla-bla.img

[1] => border=0

[2] => alt = "картинка для вставки"

[3] => style='margin:10px;border-bottom:30px #b0b0b0 solid;'

)

)

Попробуйте добавить в файл .htaccess в корне сайта


RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^index\.php http://%{HTTP_HOST}/ [R=301,L]

Может добавить еще одно условие, проверяющее строку запроса (все то, что после ?)

чтобы начиналась с "mod="


RewriteCond %{QUERY_STRING} ^mod=
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^index\.php http://%{HTTP_HOST}/ [R=301,L]

В любом случае модуль mod_rewrite должен быть включен, т.е. выше добавляемых строк должна присутствовать строка:


RewriteEngine on

Назначьте для контейнера флешки (embed или object) другие ширину и высоту (очень желательно с соблюдением пропорций) и все будет ОК.

Приходилось сталкиваться с чем-то подобным.

Через браузер запускался PHP-скрипт на сайте, делающий множество небольших однотипных операций, суммарное время выполнения которых превышало десятки минут.

Решение было в том, что PHP-скрипт после каждой операции проверял время своей работы и если оно превышало некоторое значение (я задавал 10 секунд), отправлял в браузер javascript, отображающий линейку прогресса и выполняющий вызов того же PHP-скрипта с указанием точки остановки.

В результате каждый раз PHP-скрипт начинал на сайте работу не с начала, а с того места, на котором остановился.

А после окончательного завершения PHP-скрипт отправлял в браузер javascript с сообщением о завершении работы.

(1?.|20) означает

единица (которой может и не быть)+любой символ

(т.е. без единицы от 0 до 9 и то же с единицей - от 10 до 19)

или 20

Всего: 437