Я создаю веб-приложение, которое на стороне клиента имеет большой объем данных, а данные выгружаются частями с сервера.
Я пытаюсь реализовать решение для дружественного URL-решения, которое принимает URL-адрес, например:
http://exmample.com/find/SomethingHere-or-there
Это соответствует серии невидимых переменных. Так что это может закончиться обработкой так:
http://exmample.com/index.php?loc=London&type=2&priceCat=10-15
Я получаю значения, передав дружественный URL-адрес в качестве параметра, а затем возвращаю полный URL-адрес.
Моя первоначальная реализация использовала правило mod_rewrite для пересылки в скрипт, который извлекает дружественный URL-адрес, запрашивает у БД соответствующий дружественный URL-адрес и возвращает полный URL-адрес со всеми параметрами, на которые он отображает, строит строку URL с этим и затем пересылает на веб-адрес, по которому он будет извлекать параметры на лицевую сторону веб-приложения.
Однако я теряю дружественный URL, когда использую заголовок php ("Местоположение: http://example.com") функция, поэтому они видят полный URL с параметрами. Это одно из вторичных требований, которые я пытаюсь выполнить.
Затем я подумал, что, поскольку мое веб-приложение тяжелое, мне следует попробовать отобразить страницу, а затем передать параметры из базы данных в мое веб-приложение? Это лучший способ или есть еще один способ добиться этого, о котором я не знаю?
Отсутствие включенной js на стороне клиента не является проблемой.
прикреплен некоторый код для описания моей первоначальной реализации:
//get the friendly url as a parameter
$goto = explode('=',$_SERVER['QUERY_STRING']);
//$goto[1] = SomethingHere-or-there
//build the friendly URL string
$forwardingURL = 'Location:http://'.$_SERVER['HTTP_HOST'].'/'.getForwardedURL($goto[1]);
//will be http://exmample.com/index.php?loc=London&type=2&priceCat=10-15
header($forwardingURL);
//function that returns the full url param string from the friendly url
function getForwardedURL($friendlyURL){
$friendlyURL = mysql_escape_string($friendlyURL);
$query = "
SELECT url
FROM FriendlyURLmapping
WHERE friendly_url = \"$friendlyURL\"";
$resultP = mysql_query($query)
//the full parametised URL will be in $row
$row = mysql_fetch_array($resultP, MYSQL_ASSOC);
return $row["url"];
}