Помогите написать RewriteRule

Тема в разделе "Mod Rewrite / htaccess / ЧПУ", создана пользователем qwr938, 13 авг 2010.

Статус темы:
Закрыта.
  1. qwr938

    qwr938 Постоялец

    Регистр.:
    13 авг 2008
    Сообщения:
    60
    Симпатии:
    1
    Имеется URL вида /some/number/, где some – некоторое произвольное слово, а number – некоторое произвольное число. Если написать в файле .htaccess следующее правило:

    PHP:
    RewriteRule /([0-9]+)/? context/product.php?id=$[L]
    то при запросе /book/12/ (например) веб-сервер обратится к файлу product.php и передаст ему параметр id=12, то есть получим передачу данных методом GET.

    Вопрос. Можно ли сделать так, чтобы после обращения к /book/12/ и передачи параметра id=12 URL в адресной строке изменялся на /book/.
     
  2. McLay

    McLay Постоялец

    Регистр.:
    20 май 2008
    Сообщения:
    70
    Симпатии:
    15
    Только редиректом на такой урл
     
  3. bork75

    bork75 The Team

    Регистр.:
    21 июн 2008
    Сообщения:
    1.451
    Симпатии:
    677
    А какая цель преследуется не совсем понятно?

    Если это попытка скрыть от пользователя какую-то информацию, то если только использовать post запрос. И то это сработает если только ссылки лежат в рамках одного сервера (домена).


    А так вообще это можно осуществить.

    На странице book/index.php ловить сразу get и post

    если пришёл get то забрать параметр и передать его методом post на
    саму себя book/index.php и там уже обрабатывать post запрос.
     
  4. qwr938

    qwr938 Постоялец

    Регистр.:
    13 авг 2008
    Сообщения:
    60
    Симпатии:
    1
    Цель: сделать красивый URL.

    Передача данных через ссылку методом POST плоха с точки зрения поисковой оптимизации. Поэтому метод POST я использовать не хочу.

    Таким образом, если нет способа исправить URL через .htaccess или через PHP, будет лучше оставить всё как есть, а не мутить с методом POST.
     
  5. diavolic

    diavolic

    Регистр.:
    17 мар 2010
    Сообщения:
    522
    Симпатии:
    102
    используй AJAX, он не портит адресную строку.
     
Статус темы:
Закрыта.