gormarket

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

Если хотите редиректом изменить адрес страниц с номером больше 1000, то возможно достаточно будет добавить в htaccess пару правил:


RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^noindex/([0-9]+/)$ $1 [L]

RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteCond $1 >1000
RewriteRule ^([0-9]+)/$ http://%{HTTP_HOST}/noindex/$1/ [R=301,L]

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

Может еще, как вариант, во втором правиле устанавливать некий cookie (через флаг "CO"), а в первом правиле его проверять ?

Роботы будут в этом случае делать переход с установленным cookie ?

Первый символ слеша в RewriteRule уберите:

RewriteRule ^([A-Za-z0-9_-]+)$ ./index.php?id=$1 [L]

Вариант

ссылка1, ссылка3, ссылка5 - первая колонка

ссылка2, ссылка4, ссылка6 - вторая колонка

еще можно сделать стилями, а так как Вы хотите - только двумя списками:

<ul style='float:left;'>

<li>ссылка1</li>

<li>ссылка2</li>

<li>ссылка3</li>

</ul>

<ul style='float:left;'>

<li>ссылка4</li>

<li>ссылка5</li>

<li>ссылка6</li>

</ul>

Тогда уберите background из стилей, и назначайте его после начала анимации:

$('#bg').stop(true,true).fadeIn(1200).css({"background":"#fff url(splash.jpg) no-repeat 50% 0"});

и наверно нужно fadeIn(1200) а не fadeIn("1200")

Попробуйте сделать

css:#bg-android {display:none; .......}

(так же как у Вас сделано для css:#bg {....})

moonvader:
в этом случае - по три строки на каждый редирект?

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

'skip|S=количество' (пропустить следующее правило(а))

Тогда первую из трех строк не придется прописывать для каждой страницы.

Не приходилось проверять работоспособность, но где-то так должно быть:


RewriteCond %{ENV:REDIRECT_STATUS} !^$
RewriteRule ^page\.php$ -

RewriteCond %{QUERY_STRING} page_id=1
RewriteRule ^page\.php$ http://%{HTTP_HOST}/televizor_sony.html? [R=301,L]
RewriteCond %{QUERY_STRING} page_id=2
RewriteRule ^page\.php$ http://%{HTTP_HOST}/televizor_lg.html? [R=301,L]

есди страница не "page.php" и переменная REDIRECT_STATUS непустая, то будут пропущены следующие 74 правила,

где вместо 74 подставьте количество прописанных ниже страниц (сколько подряд идущих правил пропустить, если адрес соответствует первому из приведенных правил, в приведенном примере вместо 74 нужно подставить 2)

Еще может быть возможно использование директивы RewriteMap для поиски по ассоциированному массиву, но там требуется рестарт сервера после задания массива, я в этом не спец.

Или редирект средствами PHP сделать, через

header($_SERVER['SERVER_PROTOCOL'].' 301 Moved Permanently');

header('Location: http://site.ru/televizor_sony.html');

это уж Вы тоже сами поищите как.

moonvader:

RewriteRule ^page_1\.html page.php?page_id=1 [L]
RewriteRule ^page_2\.html page.php?page_id=2 [L]
......................
......................
RewriteRule ^page_N\.html page.php?page_id=N [L]

Здесь уже есть логика, и можно решить все одним правилом и для реврайтов (вместо N строк)


RewriteRule ^page_([0-9]+)\.html page.php?page_id=$1 [L]

и одним правилом для редиректов всех страниц:


RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteCond %{QUERY_STRING} page_id=([0-9]+)
RewriteRule ^page\.php$ http://%{HTTP_HOST}/page_%1.html? [R=301,L]
moonvader:
а где редирект??
я вижу только реврайты

Если стоит флаг R, то это запускает внешний редирект (перенаправление).


[R=301,L]

У Вас реврайт с "page_1.html" на "page.php?page_id=6"

здесь о предаче веса говорить бессмысленно, поскольку реврайта никто не увидит, для всех будет видна только страница "page_1.html" и на ней отдается содержимое "page.php?page_id=6"

А с "page.php?page_id=6" на "page_1.html" это уже редирект.

Если в сети есть ссылка на "page.php?page_id=6" то при переходе по ней посетитель будет отправлен на адрес "page_1.html" (с передачей веса ссылки "page.php?page_id=6" на "page_1.html")

А чтобы тот редирект, что я предложил выше не вызывал зацикливание совместно с Вашим реврайтом, добавьте еще одно условие к этому правилу:


RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteCond %{QUERY_STRING} page_id=6
RewriteRule ^page\.php$ http://%{HTTP_HOST}/page_1.html? [R=301,L]

moonvader, если у Вас нет никакой логики при замене адресов страниц и невозможно сделать редирект одним правилом, то просто для каждой страницы вставьте в файл .htaccess пару подобных строк:


RewriteCond %{QUERY_STRING} page_id=6
RewriteRule ^page\.php$ http://%{HTTP_HOST}/page_1.html? [R=301,L]
Всего: 437