Задать вопрос
@Hipster_John

Как настроить .htaccess для успешного редиректа _escaped_fragment_?


Одним из самых удачных примеров этой новой методики может послужить довольно крупный веб-сайт - новая версия Twitter.Если вы являетесь зарегистрированным пользователем сервиса микроблогов Twitter и у вас есть Javascript, вы сможете просмотреть профиль пройдя по следующей ссылке: https://twitter.com/#!/Hibster_John

Однако Twitter хочет сохранить совместимость, и в то же время иметь привлекательные проиндексированные URL-адреса, поэтому и использует 301 редирект: twitter.com/Hibster_John
Ссылка источник

Вопрос заключается в том что сколько не искал правильного редиректа как в твиттере я так и не нашел , а мой сайт работает идентично твиттеру. Подскажите пожалуйста код необходимый для нормального ЧПУ.
Сайт пример
mysite.ru/#!/page_Home
mysite.ru/#!/page_ABOUT
и т.д.
Хотелось бы видеть
mysite.ru/page_Home
mysite.ru/page_ABOUT
и т.д.
  • Вопрос задан
  • 2842 просмотра
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 3
@Hipster_John Автор вопроса
Если брать данный код :
As the URL fragment is not transmitted to the server, you can only use a client side solution. Here’s one using JavaScript:

if (location.href.indexOf("#") > -1) {
    location.assign(location.href.replace(/\/?#/, "/"));
}
This simply checks if there is a # in the URL and replaces the first occurrence with /. So /site/#blog would get /site/blog.

То как он должен выглядеть в моем случае с /#!/ а не /# ?
Ответ написан
kompi
@kompi
nullstack devoops
Вопрос решается не апачи, а js.
Странно, что вы сразу не нагуглили stackoverflow.
Резюмируя: часть url c хэштегом не уходит на сервер.
Например, при запросе http://mysite.ru/#!/page_Home, кусок #!/page_Home откинется браузером.
Ответ написан
@frees2
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^#!/index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . index.php [L]
 </IfModule>
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы