Делайте постоянный редирект (с 301-ым статусом), тогда поисковики со временем заменят в выдаче прежнюю страницу на целевую. В процессе возможны какие-либо пертурбации. (Добавление)
А вообще нафига усложнять ссылку? Адресацию без крайней необходимости лучше вообще никогда не менять.
В .htaccess-то редирект будет в приоритете, поэтому достаточно разместить соотв. правила в правильном порядке (обычно просто выше) относительно др. правил. (Добавление)
Перед svetilniki в примере есть еще одно слово. Это норма? У обоев тоже такое может быть? (Добавление) nikoshot, вы в курсе, что всегда лучше подогнать ссылки, чем делать редирект. А массовый сслив частностей в более общий раздел – это еще хуже. Я бы сделал индивидуальную перелинковку страницы к странице, если подогнать ссылки проблематично.
GET-параметры не в правиле пишутся, а в условии с QUERY_STRING.
Вообще ситуация известная. Если делать только при помощи .htaccess, нужно каким-то образом избавиться от зацикливания, т.к. в реализации должны присутствовать два конфликтующих друг с другом действия – рерайт и редирект. Обычно для этого используют условие с THE_REQUEST.
Либо часть работы возложить на скрипт, как выше советовали. (Добавление)
Можно просто файл-обработчик переименовать в что-то вроде profuctslfurhfcdurexsopp.php – такой дубль вряд ли найдут, если вы сами его не засветите (Добавление)
Лучше всего конечно нативно обрабатывать ЧПУ в единой точке входа без использования обратной трансляции частей пути/всего пути в GET-параметры/GET-параметр, но это сложнее сделать.
nooblamer, первоначальная постановка задачи с кучей GET-параметров не совсем понятна. Если вы хотите сделать ЧПУ, выбирайте основные параметры непосредственно из пути. Простой пример: Как сделать единую точку входа с ЧПУ?
Кстати, из-за этих GET-параметров у пользователей джумлы постоянные проблемы с дублями, которые нужно специально закрывать. Т.е. сначала дубли собственноручно порождаются, а потом с ними приходится бороться (Добавление)
P.S. Первой статьей на том же сайте идет описание движка с простой моделью данных, при которой не используются ни хранимые шаблоны адресов, ни хранимые полные пути/адреса. Вместо этого части пути (слаги) хранятся в отдельных таблицах вместе с объектами соотв. типа.
Некого потроллить? Поисковики о таких страницах ничего не должны знать кроме того, что это не их дело.
(Добавление)
Если страница должна быть доступна и с токеном и без, то это тоже легко настраивается.
Что касается поисковиков, то я обычно пишу запрет на индексацию с маской /page/, что закрывает только страницу с токеном, т.к. я использую адресацию без трэйлинг-слэшей, т.е. /page под запрет не попадает.
Sergeyols, используйте долгоживущие сессии (кстати, сам sid может быть токеном) или куки. Либо прямо в адресе передавайте токен, например: /page/тут_токен. Даже самые простые каркасы, которые я использую, можно настроить на ожидание токенов в адресах страниц. Естественно, ожидаемый токен должен где-то храниться на стороне сервера. Для макс. упрощенки лучше все-таки в БД. В этом случае каркас можно настроить на автоматическую проверку существования токена в БД, т.е. если токен будет не указан или не найден, будет автоматически генерироваться 404-ая ошибка.
Скорее всего у вас было влияние одного правила на др.
Проблема в том, что при таком подходе вам придется постоянно городить новые правила. Гляньте эту мою статью: Как сделать единую точку входа с ЧПУ? Т.е. делайте обращение ко всем модулям через единую точку входа.
кгляут, если речь идет о перелистывании каких-то однотипных объектов, добавляйте в адрес слаг или числовой id категории и при наличии этого элемента во входящем адресе добавляйте к имеющемуся запросу к БД доп. условие, выполняющее фильтрацию по указанной категории. Гляньте концовку статьи Блог на G-Drive, там как раз описывается нечто подобные, например по входящему адресу /category/valenki к основному запросу прибавляется AND `category`={$page['category']} – по слагу valenki предварительно выбирается инфа о категории, включая ее числовой id (находится в поле category; вы можете использовать и свое название id_cat, просто в наших либах обычно требуется, чтобы имя этого поля совпадало с первым компонентом пути в адресе категории), а затем уже в условии отбора основного запроса используется числовой id категории – так поиск происходит быстрее. Вы можете числовой id использовать непосредственно в адресе, но предварительный запрос к таблице категорий лучше все равно выполнять, чтобы таким образом проверить ее существование и выбрать инфу о категории (название и т.п.).
Обычно нет, не фрейм. Или обычная страница с сайдбаром или на крайняк блок контента, загружаемый посредством AJAX (иногда даже бывает универсальный вариант). (Добавление)
Естественно, основное содержимое строится на основе специфичного вложенного шаблона. При AJAX-запросе результат выполнения вложенного шаблона отдается без обрамления и на стороне клиента встраивается в нужный блок. При обычном запросе результат выполнения вложенного шаблона встраивается в общий шаблон, где размещается сайдбар и т.п., и передается клиенту в виде цельной страницы. В наших админках многие вещи можно одновременно и AJAX'ом просматривать и обычным запросом. Например, когда вы листаете какой-то список, отдельные его элементы удобно просматривать в блоке, отображаемом поверх списка.