Нет серверного способа сделать это. Вы можете работать с AJAX, но это сломает сайт для пользователей, не поддерживающих JavaScript. Вероятно, лучшим способом было бы иметь URL-адреса содержимого на стороне сервера (index.php?page=<page_id>
) и переписывать их локально с помощью JavaScript (до #<page_id>
), а также обрабатывать загрузку содержимого с помощью AJAX , а затем . Таким образом, вы можете иметь свои хэш-URL-адреса для устройств с поддержкой JS, и все остальные смогут пользоваться сайтом.
Однако это требует некоторой избыточности, потому что вам нужно предоставить один и тот же контент дважды, один раз для включения через AJAX и один раз с правильной компоновкой и всем через PHP.
Если вы просто хотите получить хеш-URL по эстетическим соображениям, но не хотите полагаться на JS, вам не повезло. Семантика URL-адресов против вас: идентификаторы фрагментов на самом деле не должны влиять на контент, на который ссылается URL, а только на фрагмент внутри этого контента. URL-адреса AJAX меняют эту семантику, но нет веских причин делать это, если вам не нужно.