Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: "Может быть", а "может не быть"
 
 автор: Maxam   (19.06.2011 в 14:46)   письмо автору
 
 

Как задать "можеть быть" в регулярке?

RewriteRule ^post([0-9]+)_([0-9]{5})$ post.php?id=$1&id2=$2 [L]
RewriteRule ^post([0-9]+)$ post.php?id=$1 [L]

Как это объеденить, т.е. как записать в одну строку? Второго значения может и не быть в адресной строке.

Там наверно что-то нужно со знаком вопроса сделать, но я не знаю, как это в синтаксисе правильном должно быть.

  Ответить  
 
 автор: cheops   (19.06.2011 в 16:47)   письмо автору
 
   для: Maxam   (19.06.2011 в 14:46)
 

Хм... а можно более подробно описать ситуацию? "может быть" задается разными способами в зависимости от того, чего хочется добиться и где это "может быть" расположено.

  Ответить  
 
 автор: Maxam   (19.06.2011 в 22:46)   письмо автору
 
   для: cheops   (19.06.2011 в 16:47)
 

Ну, т.е. в адресе может быть четыре варианта:

http://www.moisajt.ru/post5
http://www.moisajt.ru/post5_56
http://www.moisajt.ru/post5?sort=значение&index=значение
http://www.moisajt.ru/post5_56?sort=значение&index=значение

Хотел просто в одну запись, чтобы не создавать четыре строки.

  Ответить  
 
 автор: cheops   (20.06.2011 в 00:00)   письмо автору
 
   для: Maxam   (19.06.2011 в 22:46)
 

Собственно идея у вас верная - самые длинные соответствия располагаться первыми, короткие - последние. Каждое правило сопровождать флагом [L]. Только следует помнить, что RewriteRule отбрасывает все GET-параметры, т.е. то, что расположено после ?, для получения этих параметров необходимо использовать RewriteCond и переменную окружения %{QUERY_STRING}.

  Ответить  
 
 автор: Maxam   (20.06.2011 в 01:44)   письмо автору
 
   для: cheops   (20.06.2011 в 00:00)
 

Вот мне как раз и нужно совместить, чтобы к сокращённым адресам post5 можно было обычные get-параметры передавать и чтобы они нормально понимались? Или тут не вариат?

  Ответить  
 
 автор: Maxam   (20.06.2011 в 09:55)   письмо автору
 
   для: Maxam   (19.06.2011 в 14:46)
 

Всё, спасибо. Оказывается достаточно добавить правило "QSA" :)

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования