Как я могу сохранить один и тот же URL-адрес в адресной строке для каждой страницы?

У меня есть сайт, созданный с помощью Codeigniter, где есть много страниц и каталогов.

Скажем, имя сайта www.example.com (это индексная страница). Если пользователь переходит на другую страницу, например, нажав ссылку «about», как я могу сделать имя сайта не изменяться в адресной строке для всех страниц?

Это плохая идея, если ничто другое не мешает пользователям добавлять закладки на ваш сайт.

Однако есть два способа сделать это, если вы намерены в этом направлении (и я действительно предлагаю вам вернуться назад, пока не стало слишком поздно). Вы можете загрузить все в iframe:

 <!-- your site might look like this then --> <html> <body><iframe src="http://path.to.your.real.site" /> </html> 

И свойство src будет направлять на другой URL-адрес, который фактически имеет все динамические URL-адреса.

Другой вариант – AJAX. Это действительно слишком долго и сложно для примера.

Не уверен насчет codeigniter bu, вы можете сделать это в простой php следующим образом:

  1. Ваш url всегда отображает одну «фасадную» php-функцию (возможно, даже «index.php»).
  2. В вашей навигации по страницам вы всегда «POST» из формы. Никогда не используйте "href ="
  3. В FORM у вас есть несколько скрытых полей, которые записывают текущие и запрошенные страницы.
  4. Когда запускается ваш php-фасад, вы просматриваете поля формы «текущий» и «запрошенный» и вызываете соответствующий код для отображения «запрошенной» страницы.

В качестве альтернативы вы можете использовать «cookie» вместо скрытых полей формы и некоторый простой javascript, чтобы установить значение «запрошенного» файла cookie.

Используйте FRAMESET ИЛИ используйте Ajax

 <FRAMESET ROWS="100%,*" BORDER=0 FRAMEBORDER=0 FRAMESPACING=0> <FRAME NAME="top" SRC="/Login .aspx or .php" NORESIZE> </FRAMESET>