заставить htaccess не выдавать GET переменную, если она пуста

интернет компьютеры программирование php htaccess

Есть 3 GET переменных, каждая из них может быть как пустой, так и заданной, передаются они как /variable/value/ .htaccess предупреждён, что любая из них может отсутствовать. Как заставить его не выдавать переменную, которая не задана?

То есть:
^blog/(prevs/)?([^/.]*)?/?(order/)?([^/.]*)?/?(option/)?([^/.]*)?/?$ index.php?type=blog&prev=$2&order=$4&option=$6

и если, например, prevs и option пустые, пусть не даёт &prev=$2 и &option=$6. Возможно ли это вообще?

Примечание:
Ладно, не буду извращаться)

Теперь возникла другая проблема: строчка разрослась, пошли макросы $10, $12 и т.д., но начиная с десятой .htaccess в значение переменной выдаёт последний символ, т.е. с макросом $10 у нас переменная равна 0, с макросом $12 равна 2. Не ругайте сильно, я вчера взялся за .htaccess)

Примечание:
Погуглил, погуглил, выяснил, что не я один страдаю от ограничения $1-$9, потом погуглил еще, и если кому интересно, вот решение с http://www.digimantra.com/tutorials/advanced-htaccess-for-more-than-10-group-of-backtrack-references/

PROBLEM:
RewriteRule ^tools/chart(/id_([^\/]+))?(/user_([A-Za-z0-9_]+))?(/action_([A-Za-z0-9_]+))?(/date_([A-Za-z0-9_]+))?(/service_([A-Za-z0-9_]+))?(/.+)$ my_php_file.php?id=$2&user=$4&action=$6&date=$8&service=$10&message=$12

SOLUTION:
RewriteCond %{REQUEST_URI} /(service_([A-Za-z0-9_]+))?(/.+)$
RewriteRule ^tools/chart(/id_([^\/]+))?(/user_([A-Za-z0-9_]+))?(/action_([A-Za-z0-9_]+))?(/date_([A-Za-z0-9_]+))?(/service_([A-Za-z0-9_]+))?(/.+)$ my_php_file.php?id=$2&user=$4&action=$6&date=$8&service=%2&message=%3
Ответы:
Оно вам надо ? Перенаправляйте любой линк в index.php, а там уже разбирайте REQUEST_URI и вытаскивайте из него любые переменные, какие вздумается.


13 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.