mod_rewrite: как убрать URL строки запроса, но сохранить ее значения - PullRequest
0 голосов
/ 28 октября 2010

Я бы хотел удалить URL-адрес из его строки запроса, используя mod_rewrite, но сохранив значения строки запроса, например, id хотел бы изменить:

http://new.app/index.php?lorem=1&ipsum=2

к хорошей чистке:

http://new.app/

, но сохраняют значения lorem и ipsum, поэтому внутри index.php:

$_GET["lorem"]

все равно вернется 1 и т. Д.

Это моя первая попытка использования mod_rewrite, поэтому любая помощь будет принята с благодарностью, и, если бы вы могли точно объяснить, как работает ваше решение, я тоже смогу немного узнать в следующий раз!

Спасибо!

Ответы [ 2 ]

0 голосов
/ 28 октября 2010

Как упоминалось Роланд , вы, похоже, не понимаете, как работает переписывание.Обычно это делается с помощью Apache mod_rewrite в .htaccess, который перезаписывает красивые URL-адреса сценария php как / index.php? Lorem = 1 & ipsum = 2

Даже Joomla использует .htaccess, кромеу него есть единственное правило перезаписи, которое передает ВСЕ в сценарий PHP, который выполняет реальное переписывание в PHP.

Что вы не понимаете, так это то, что в «симпатичной» версии что-то еще должно существовать для сценария phpвытяните значение $ _GET ["lorem"]

Таким образом, это будет похоже на http://new.app/lorem/ или http://new.app/section/lorem, который затем (используя mod_rewrite в .htaccess) переписать в скрипт php.

0 голосов
/ 28 октября 2010

Я не совсем понимаю, что вы хотите.Ваш первый URL-адрес - это внешняя форма , которую пользователи видят и могут напечатать в своих браузерах.

Во второй форме почти вся информация удаляется, поэтому при отправке ее на сервер каксервер должен знать, что lorem=1&ipsum=2?

Если ваш вопрос действительно

Как сделать так, чтобы URL-адреса в браузере выглядели хорошо, даже если пользователь где-то глубокона веб-сайте, нажав на URL-адреса, которые несут много информации?

, тогда есть два решения:

  1. Вы можете передавать информацию небольшими битами на сервер и сохранять ихвсе в сеансе.Мне это не нравится, потому что тогда пользователь не может взять URL-адрес, показать его другу и заставить его увидеть ту же страницу.
  2. Весь ваш веб-сайт может быть в HTML <frameset>, содержащем только один<frame>.Таким образом, URL-адрес окна верхнего уровня не изменится, изменится только внутренний URL-адрес (который не отображается браузером).
...