Я столкнулся с проблемой, которую, похоже, не могу понять, я использую плагин адресов jQuery для хранения истории и включения глубоких ссылок, и типичный URL после клика будет выглядеть так:
http://mysite.com/#!/page
Проблема в том, что мне нужно избавиться от последних /
, поэтому мне нужно, чтобы это выглядело так:
http://mysite.com/#!page
Я использую плагин версии 1.2 - последняя версия 1.4. Когда я использую 1.4, мой hashbang #!
исчезает ..
Кто-нибудь знает почему? несмотря на это, обновленная версия создает ту же проблему.
Причины, чтобы это исправить, - я использую перенаправления 301 на «Красивые URL», если запрашивается ?_escaped_fragment_=
. Итак, это:
http://mysite.com/data/#!page1
станет:
http://mysite.com/data/page1
В настоящее время он делает это: mysite.com/data//page1
вот переписывание .htaccess:
<IfModule mod_rewrite.c>
RewriteEngine on
# Rewrite current-style URLs of the form 'index.php?url=x'.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?url=$1 [L,QSA]
</IfModule>
и вот несколько важных PHP, которые я использую при загрузке страницы:
if ($fragment = $_GET['_escaped_fragment_']) {
// OPTION 1: if Google is reqesting an '_escaped_fragment_=' page, then redirect to a clean URL
header("Location: $base/$fragment", 1, 301);
exit;
}
Любая помощь по улучшению этой ситуации приветствуется. Я не хочу использовать API истории HTML5, поскольку я уже исследовал эту опцию.