[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: 301 редирект и # (%23)
Страницы: 1, 2
guest
Нет, js, не завязан.

На сайте есть страница на которой (условно говоря) faq. Как обычно, сверху содержание и ниже якоря. Так вот, эта же информация теперь доступна на другой странице в измененном виде (информация под спойлерами), имена якорей сохранены для каждого спойлера. В интернете есть ссылки на определенные части этого faq с указанием якоря. Хотелось бы красивой реализации. Просто редиректить на новую страницу - не проблема. Но хотелось бы, чтобы взору пользователя открывался сразу же необходимый раздел, к которому его, собственно, и направили по ссылке с другого сайта и пользователю не пришлось искать нужную информацию на странице.
killer8080
типа такого
.htaccess
RewriteRule ^smth/smth1/$ js_redirect.php?uri=/smth/ [L]


js_redirect.php
<script type="text/javascript">
location.href = '<?=$_GET['uri']?>' + location.hash;
</
script>




Спустя 3 минуты, 9 секунд killer8080 написал(а):
вот только не знаю, как на это поисковики отреагируют.

UPD исправил, там не должно быть внешнего редиректа.
guest
Спасибо за ответ. Но... совершенно случайно нашел рабочий вариант. 0_o

RedirectMatch 301 smth/smth1 /smth


В итоге получается что при входе по адресу

http://site.ru/smth/smth1/#anchor1


отсылает на

http://site.ru/smth#anchor1


Т.е. простой редирект, а якоря сами подставляются. 0_o. Не понимаю почему, но то, что нужно.
P.S. Правда в моем случае выражение чуть более сложное:

RedirectMatch 301 /smth/([a-z-_]+)/smth1 /smth/$1

killer8080
Цитата (guest @ 1.06.2013 - 21:35)
Спасибо за ответ. Но... совершенно случайно нашел рабочий вариант. 0_o

уверен? Проверь в IE.
FatCat
Решал похожую задачу. У нас на форуме все исходящие ссылки через редирект. Якоря работают.
Вот например от балды: http://ya.ru/#btm - можно кликнуть и посмотреть, что откроется с якорем.

Вот код редиректа:
$link = explode("counter/counter.php?link=",rawurldecode($_SERVER['REQUEST_URI']));
// header("HTTP/1.1 301 Moved Permanently"); // если нужно 301-й редирект
header("location: ".$link[1]);


_____________
Бесплатному сыру в дырки не заглядывают...
guest
killer8080, самое интересное то, что работает и в IE. ) Проверял до версии 7.
killer8080
Цитата (guest @ 5.06.2013 - 09:21)
killer8080, самое интересное то, что работает и в IE. ) Проверял до версии 7.

проверял на разных машинах, ни ie7, ни ie9 не работает. Ссылка FatCat-а то же в них открывается без якоря . Добавлять якорь, или нет, это инициатива браузера, сервер на это повлиять никак не может. Ну собственно выбора у вас все равно нет, при смене адресов 301-й редирект нужно делать в обязательном порядке.
FatCat
Цитата (killer8080 @ 5.06.2013 - 08:36)
Ссылка FatCat-а то же в них открывается без якоря

Проверил в ИЕ10, в файерфоксе и в Опере - во всех трех открылась с якорем.

_____________
Бесплатному сыру в дырки не заглядывают...
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.