Intereting Posts
Должен ли я использовать window.navigate или document.location в JavaScript? Проблема в опции выбора в JQuery mobile Анимация загрузки страницы для скрытия процесса загрузки всей страницы заканчивается задолго до того, как она должна исчезнуть Как удалить пространство желоба только для отдельного div – bootstrap Выпадающее меню, которое открывается вверх / вверх с помощью чистого css css плавающие 2 входных поля в форме GWT – Использовать CellTable Cell для использования HTML? Не переходите на другие страницы в WebView, отключите ссылки и ссылки граница фонового изображения Как я могу отформатировать дату ISO 8601 в более читаемом формате, используя Javascript? Как на самом деле использовать Markdown с Meteor div align = center Должен ли находиться в документа HTML? отключить событие мыши на 1-й и снова включить его на третьем клике – javascript Неизвестный поставщик при добавлении сервиса к controllerу

Можно ли переписывать URL на динамическом веб-сайте?

Я много исследовал проблему, я не слепо спрашиваю, но я не могу понять эту концепцию. Поэтому мой сайт содержит единственный файл index.php, который загружает данные в div с помощью ajax, поэтому страница никогда не обновляется, и URL никогда не изменяется. Теперь я знаю, что мне нужны ссылки на определенный контент, используя переписывание URL. Сайт содержит сообщения, поэтому, например, все сообщения вытаскиваются из db, а «site.com» – это URL. Но я хочу иметь возможность делать «site.com/post-one» и иметь ссылку на этот пост. Сначала я думаю, что мне нужно добавить переменную в конец URL-адреса, когда динамический контент для этого сообщения загружается как таковой: site.com?post=1, поэтому оттуда я могу использовать переписывание URL-адресов; проблема, с которой я столкнулась, – это. Поскольку содержимое для сообщения 1 будет загружено в div, если бы я отправился на этот маршрут и реализовал переписывание URL-адресов, будет ли теперь site.com/post-1 просто извлекать данные динамически или страница должна быть статичной?

Ваша проблема заключается в том, что это обязательно потребует использования hashа, а не переменной GET (потому что GET требует обновления страницы, хеш-код не работает). Это делается с использованием переменной window.location.hash в JavaScript, которая обновляется всякий раз, когда содержимое URL после # изменяется (например: если я должен был изменить http://site.com/#lol на http://site.com/#lmao , window.location.hash изменится с #lol на #lmao ). Хеши обычно используются в навигационных сайтах, основанных на Ajax, таких как Twitter (я думаю, Google также реализует его).

Если вы используете jQuery, вы должны попробовать плагин jQuery BBQ, который позволит вам делать такие вещи, как обнаружение изменений hashа (в противном случае вам придется реализовать какой-то подобный движок самостоятельно, потому что он понадобится для любого типа hash-навигация).

Однако вы должны помнить, что это не имеет ничего общего с mod_rewrite, поэтому вам не нужно добавлять какие-либо правила перезаписи. Вся ваша работа (выборка данных и т. Д.) Будет выполняться через XML-запросы Ajax XML, а не с обычными HTTP-запросами.

Используя это, вы можете сделать ваш URL-адрес похожим на http://site.com/#!/post/1 (это может идти в любом формате, который вам нужен, например http://site.com/#!/p/this-is-the-posts-title ) вместо http://site.com/?post=1 , хотя вы отсутствовали на http://site.com/post/1 .

Ваша идея использования mod_rewrite кажется звуковой. Если вы использовали директиву rewrite, которая передает часть URI в качестве переменной POST в ваш index.php, вы не могли бы выбросить какой-то код в верхнюю часть вашего индексного файла, который проверяет эти данные, а затем динамически генерирует ajax для сбрасывания в дивины?

Пример:

 RewriteRule ^(.*)$ index.php?post=$1 [L] 

Index.php:

  $.ajax({ **grab post content dump into div** });  

Кроме того, не забудьте очистить данные $ _POST перед его обработкой.