Использование ложных URL с HTML5 History API - PullRequest
1 голос
/ 13 июля 2011

Я работаю над сайтом, на котором есть базовый слайдер с 4 слайдами, которые идут влево и вправо, на котором отображается только 1 слайд по центру на странице. Все содержимое слайдов загружается на одной странице, каждая в своем собственном разделе.

<div id="slider-box">
    <div class="slide">HTML and bg image</div>
    <div class="slide">HTML and bg image</div>
    <div class="slide">HTML and bg image</div>
    <div class="slide">HTML and bg image</div>
</div>

Ничего особенного. Также каждый слайд связан со ссылкой:

<a href="/gallery">Gallery</a>
<a href="/links">Links</a>
<a href="/about">About</a>
<a href="/resources">Resources</a>

Итак, я начал использовать History.js, чтобы связать каждый слайд с соответствующей ссылкой; www.example.com/about. Я могу изменить состояние без проблем; работа вперед и назад и URL меняется.

Что я заметил, так это то, что, если я загружаю страницу с ложным URL, например, www.example.com/about, страница возвращает 404.

Что можно сделать, чтобы предотвратить появление 404, а также убедиться, что страница перенаправлена ​​на правильный слайд?

Есть ли другой способ, которым я должен делать это?

Я в стеке LAMP с jQuery и HTML5.

Я действительно застрял на этом ... спасибо!

Ответы [ 2 ]

1 голос
/ 24 января 2012

Если я правильно вас понимаю, вам действительно нужно создать страницы /about, /gallery и т. Д.Подумайте об этом - API History работает только на одной странице.Он манипулирует тем, что говорит адресная строка, но сам по себе не создает реальных URL.

Мое решение будет использовать что-то вроде mod_rewrite./about будет перенаправлять на что-то вроде /?p=about, которое загружает вашу страницу с соответствующей div уже открытой.То же самое для других слайдов.Только тогда вы можете использовать функции History API.

0 голосов
/ 13 июля 2011

Это наш веб-сервер, который обрабатывает ошибку HTTP 404, см. Документацию вашего веб-сервера о том, как создавать пользовательские страницы ошибок с перенаправлениями и т. Д. Если вы используете Microsoft Internet Information Server 7, посмотрите здесь http://blogs.iis.net/rakkimk/archive/2008/10/03/iis7-enabling-custom-error-pages.aspx

...