Есть ли какой-нибудь способ для PHP / CodeIgniter прочитать URL, когда он похож на site.com/#/xyz ...? - PullRequest
1 голос
/ 02 сентября 2010

В основном у меня есть сайт, основанный в основном на Ajax.Когда вы загружаете результат, он появляется через Ajax, и адресная строка URL меняется с mysite.com на mysite.com/#xyz/A_Random_Title.

A_Random_Title - это форматированный заголовок загруженной вещи, оптимизированный для SEO, новажная часть #xyz.xyz является идентификатором загруженного результата и используется для запроса к базе данных.

Есть ли способ, которым CodeIgniter может прочитать текущий URL-адрес подобным образом?Я не имею в виду, прочитайте это, как только страница загрузится, но прочитайте запрос к нему ... надеюсь, что это имеет смысл!

Спасибо!

Джек

1 Ответ

3 голосов
/ 02 сентября 2010

Нет, он доступен только для браузера , поэтому вам придется иметь дело с Javascript.Сервер не может прочитать его.

Объяснение:
Обычно хеш-компонент URL страницы (часть, следующая за знаком #) обрабатывается только браузером - браузер никогдапередает его на сервер.К сожалению, это является частью стандарта HTML и одинаково, независимо от того, используете ли вы IE или любой другой браузер (и в этом отношении PHP или любую другую серверную технологию).

Вот что Википедия говорит об этом:

Идентификатор фрагмента функционирует иначе, чем остальная часть URI: именно его обработка исключительно на стороне клиента без участия со сторонысервер .Когда агент (например, веб-браузер) запрашивает ресурс с веб-сервера, агент отправляет URI на сервер, но не отправляет фрагмент.Вместо этого агент ожидает от сервера отправки ресурса, а затем агент обрабатывает ресурс в соответствии со значением фрагмента.В наиболее распространенном случае агент прокручивает веб-страницу до элемента привязки, строка атрибута которого равна значению фрагмента.Возможно другое поведение клиента

...