jQuery - проблема с плагином адреса - PullRequest
2 голосов
/ 17 июня 2011

Я столкнулся с проблемой, которую, похоже, не могу понять, я использую плагин адресов 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, поскольку я уже исследовал эту опцию.

1 Ответ

2 голосов
/ 20 июня 2011

Эта строка кода может помочь!

$.address.strict(false);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...