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

Форум Apache

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

 

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

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

тема: хау rewriterule: key1-var1...-keyN-varN --> key1=var1...&keyN=varN
 
 автор: BACbKA   (05.11.2006 в 13:10)   письмо автору
 
 

Здраствуйте

я уже 3 день рыскаю по форумам изчу, эксперементирую но

преобоазить при помощи mod rewriterule
ссылку
www.domain.com/key1-var1-key2-key2...-keyN-varN.html

в

www.domain.com/?key1=var1&key2=key2...&keyN=varN

неудаётся

помогите чайнику

   
 
 автор: ihoru   (05.11.2006 в 15:02)   письмо автору
 
   для: BACbKA   (05.11.2006 в 13:10)
 

лично я вообще ничего не понял, как и зачем это?

   
 
 автор: cheops   (05.11.2006 в 15:27)   письмо автору
 
   для: BACbKA   (05.11.2006 в 13:10)
 

Можно поступить следующим образом
RewriteEngine on 
Options +FollowSymlinks 
RewriteBase /
RewriteRule ^([a-z0-9]+)-([a-z0-9]*)-([a-z0-9]+)-([a-z0-9]*)-([a-z0-9]+)-([a-z0-9]*)$ ?$1=$2&$3=$4&$5=$6

   
 
 автор: BACbKA   (05.11.2006 в 15:48)   письмо автору
 
   для: cheops   (05.11.2006 в 15:27)
 

благодарю, cheops, но мне нужно универсальное выражение,
чтоб можно было использовать любое количество параметров

ваш вариант подходит к 3-ём
www.domain.ru/par1-var1-par2-var2-par3-var3

a к
www.domain.ru/par1-var1-par2-var2
или к
www.domain.ru/par1-var1

уже неподходит

   
 
 автор: cheops   (05.11.2006 в 21:50)   письмо автору
 
   для: BACbKA   (05.11.2006 в 15:48)
 

Универсальное не получится, придётся добавить столько правил, скоько пар par1-var1 будет в URL
RewriteEngine on  
Options +FollowSymlinks  
RewriteBase / 
RewriteRule ^([a-z0-9]+)-([a-z0-9]*)-([a-z0-9]+)-([a-z0-9]*)-([a-z0-9]+)-([a-z0-9]*)$ ?$1=$2&$3=$4&$5=$6 [L]
RewriteRule ^([a-z0-9]+)-([a-z0-9]*)-([a-z0-9]+)-([a-z0-9]*)$ ?$1=$2&$3=$4 [L]
RewriteRule ^([a-z0-9]+)-([a-z0-9]*)$ ?$1=$2 [L]

   
 
 автор: BACbKA   (05.11.2006 в 22:19)   письмо автору
 
   для: cheops   (05.11.2006 в 21:50)
 

хм... но если удаётся неограниченое числи параметров в таком виде преобразовать
www.domain.com/p1/p2/p3/p4/..../pn/

при помощи етого
#removes slash from the end of query_string
RewriteRule ^(.*)/$ $1 [L]
#recursive slash to minus replacement.
RewriteCond %{REQUEST_URI} (.*)/(.*)$
RewriteRule ^(.*)/(.*)$ %1-$2 [QSA]
#ready parameters redirect
RewriteRule ^([^/]*-(.*))*$ script.php?args=$1

Источник http://forum.dklab.ru/php/heap/Mod_rewrite+TransferToAScriptOfAPlentyOfParamet ers.html?highlight=rewritecond%2A+rewritecond+request_uri%2A+request_uri

то я думаю что в моём случае это тоже возможно
у меня частично получилось:

RewriteEngine on
RewriteRule ^(.*),html$ $1 [L]
RewriteCond %{REQUEST_URI} (.*)-(.*)$
RewriteRule ^(.*)-(.*)$ %1=$2 [QSA]
RewriteCond %{REQUEST_URI} (.*)-(.*)$
RewriteRule ^(.*)-(.*)$ %1&$2 [QSA]
RewriteRule ^([^/]*=(.*))*$ index.php?$1

преобразует
www.domain.com/p1-v1-p2-v2-p3-v3
в
www.domain.com/?p1=v1&v1=p2&p2=v2&v2=p3&p3=v3 ...

то есть его нужно подредактировать...
3 день мучаюсь :)

   
Rambler's Top100
вверх

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