| 
 
 
 
 Легенда:
  новое сообщение 
  закрытая нитка 
  новое сообщение 
  в закрытой нитке 
  старое сообщение   | 
Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
Новичкам также крайне полезно ознакомиться с данным документом.
|  | [mod_rewrite] Я вобще из траспортного цеха.  02.12.06 01:47  Число просмотров: 3254 Автор: ZloyShaman <ZloyShaman> Статус: Elderman
 |  
| Ты уверен в том, что всё это надо разгребать mod_rewrite'ом? Я бы сделал перенаправление всего в один скрипт, а он уж пусть разбирает URL. А уж в скрипте ты сможешь всегда любую логику организовать. |  | <web building> |  
| [mod_rewrite] Обработка необязательных параметров.  02.12.06 01:39 Автор: n0xi0uzz <Черкасов Виктор> Статус: Member
 Отредактировано 02.12.06 01:40  Количество правок: 1
 |  
| Здравствуйте. Прикручиваю к движку своего сайта mod_rewrite, возникла следующая проблема.
 На данный момент имеются такие строки:
 
 
RewriteEngine On
RewriteBase /
RewriteRule ^(ru|eng)/main/(.*)$          cgi-bin/main.cgi?p=main&lang=$1&hash=$2 [L]
RewriteRule ^(ru|eng)/docs/([0-9]*)/([0-9]*)/(.*)$ cgi-bin/main.cgi?p=docs&lang=$1&did=$2&d=$3&hash=$4 [L]
 ---
 В последнем правиле второй и третий параметры -- необязательны, то есть, если они не указаны, при запросе к серверу /ru/docs/, скрипту должны передаваться параметры ?p=docs&lang=ru&did=&d=&hash=[четвертый_параметр]. Но мешают слеши, -- поэтому то, что надо выполняется только если запрос выглядит как /ru/docs///[четвертый_параметр].
 
 Вопрос в том, как написать условие такое, чтобы слеши были необязательны?
 Надеюсь, я ясно всё объяснил, хоть и несколько сумбурно =).
 Спасибо.
 |  
|  | [mod_rewrite] Я вобще из траспортного цеха.  02.12.06 01:47 Автор: ZloyShaman <ZloyShaman> Статус: Elderman
 |  
| Ты уверен в том, что всё это надо разгребать mod_rewrite'ом? Я бы сделал перенаправление всего в один скрипт, а он уж пусть разбирает URL. А уж в скрипте ты сможешь всегда любую логику организовать. |  
|  |  | Поддерживаю  02.12.06 01:54 Автор: Heller <Heller> Статус: Elderman
 |  
| > Ты уверен в том, что всё это надо разгребать > mod_rewrite'ом? Я бы сделал перенаправление всего в один
 > скрипт, а он уж пусть разбирает URL. А уж в скрипте ты
 > сможешь всегда любую логику организовать.
 Ну а если все же mod_rewrite, то слеши можно сделать "необязательными" с помощью квантификатора "?" (что значит одно или ноль совпадений).
 |  
|  |  |  | Спасибо =).  02.12.06 03:27 Автор: n0xi0uzz <Черкасов Виктор> Статус: Member
 |  
| > Ну а если все же mod_rewrite, то слеши можно сделать > "необязательными" с помощью квантификатора
 > "?" (что значит одно или ноль
 > совпадений).
 
 Хех, вот читал же об этом в документации по mod_rewrite, да и стандарт это для регулярок... В общем, я протупил =). Спасибо! =)
 
 А насчет скрипта, не совсем понятна (в полчетвертого утра) технология. То есть, запрос mod_rewrite'ом передается в скрипт, а там разбирается REQUEST_URI и в header пихается соотвествующий Location, я так понимаю?
 |  
|  |  |  |  | Зачем в Location  02.12.06 11:25 Автор: ZloyShaman <ZloyShaman> Статус: Elderman
 |  
| > А насчет скрипта, не совсем понятна (в полчетвертого утра) > технология. То есть, запрос mod_rewrite'ом передается в
 > скрипт, а там разбирается REQUEST_URI и в header пихается
 > соотвествующий Location, я так понимаю?
 у тебя будет скрипт MAIN, на который рерайтятся все запросы (ну, статику оттуда можно исключить). В нём разбираешь REQUEST_URI и в зависимости от него отображаешь то, что тебе нужно. Инклюдишь нужные файлы с соответствующей логикой и т.д.
 |  
 
 
 |  |