Назад | Перейти на главную страницу

Почему это перенаправление не работает?

У меня есть опубликованные или опубликованные URI, которые мне теперь нужно перенаправить. Старые URL-адреса имеют вид:

http://www.mysite.com/!#story/45 и я хочу перенаправить их на http://www.mysite.com/#!story/name-of-the-story

Я пробовал следующее в файле .htaccess (Apache 2.2)

redirect 301 /#!story/45 /#!story/name-of-the-story

ИЛИ

RewriteCond %{REQUEST_URI} ^(.*)#!story/45(.*)$
RewriteRule ^(.*)$ /#!story/name-of-the-story [R=301]

Но это не перенаправляет URL (это просто не имеет никакого эффекта). Синтаксис! # Генерируется используемой нами библиотекой под названием prettyPhoto, которая записывает хэш местоположения из javascript:

location.hash = decodeURI('!' + theRel + '/'+story_slug+'/');

Может ли кто-нибудь объяснить, почему это не сработает, или предложить способ обойти это? У меня включен mod_rewrite.

Невозможно. Якоря не являются частью URI или строки запроса, поэтому они вообще не отправляются в Apache.