Я использую HTML5 History API (через History.js) для динамического перезаписи URL. Я бы хотел, чтобы они были в следующем формате:
http://www.example.com/example/article/page
где «article» и «page» задаются «History API».
Однако это не совсем работает, как ожидалось, поскольку pushState
или replaceState
, предоставленные History.js, похоже, работают только на той части URL, которая находится после последней косой черты.
Быстрый пример: если я нахожусь на http://www.example.com/example/
и наберу pushState('Article-Title/1')
, URL становится http://www.example.com/example/Article-Title/1
. Теперь я могу изменить номер страницы с помощью pushState('2')
, но у меня нет возможности изменить часть Article-Title
, что я и ищу. window.location.href
, который используется в примере Бена Луптона , может изменить URL-адрес, но также вызывает «сложное» перенаправление.
Я полагаю, что это ограничение существует для предотвращения XSS; однако это меня сильно беспокоит. Есть ли разумный способ обойти это?