Страница 1 из 1

Требуется помощь по правилам rewrite для lighttpd

Добавлено: 2008-12-17 11:01:38
Ghost_of_Net
Собственно, сабж. Надо переписать следующие правила Апача в формат lighttpd:

Код: Выделить всё

RewriteEngine on
RewriteRule catalog/(.*)?.html(/(.{1,2}))?(/(.*))? catalog2.php?id=$1&view=$3&start=$5 [L]
RewriteRule catalog/ catalog.php [L]
RewriteRule product/(.*)?.html(/(.{1,2}))?(/(.*))? product.php?id=$1&view=$3&start=$5 [L]
RewriteRule tovar/(.*)?.html tovar.php?id=$1 [L]
RewriteRule accomp/(.*)?.html accomp.php?id=$1 [L]
RewriteRule newsarch news.arch.php [L]
RewriteRule article/(.*).html article.php?id=$1 [L]
RewriteRule article/ article.php [L]
RewriteRule articles/(.*).html articles.php?id=$1 [L]
RewriteRule articles/ articles.php [L]

Re: Требуется помощь по правилам rewrite для lighttpd

Добавлено: 2008-12-17 11:24:39
hizel
так пробовали?

Код: Выделить всё

RewriteRule catalog/(.*)?.html(/(.{1,2}))?(/(.*))? catalog2.php?id=$1&view=$3&start=$5

Код: Выделить всё

url.rewrite-once = ( "catalog/(?!(.*)).html(/(?!(.{1,2})))(?!(/(.*)))" => "catalog2.php?id=$1&view=$3&start=$5" )
правда я в скобках запутался :/

Re: Требуется помощь по правилам rewrite для lighttpd

Добавлено: 2008-12-17 11:37:33
Ghost_of_Net
hizel писал(а):

Код: Выделить всё

url.rewrite-once = ( "catalog/(?!(.*)).html(/(?!(.{1,2})))(?!(/(.*)))" => "catalog2.php?id=$1&view=$3&start=$5" )
правда я в скобках запутался :/
Не - не работает, ситуация осложняется еще тем что нет никакого дебага - и почему не работает сказать не возможно =(

Re: Требуется помощь по правилам rewrite для lighttpd

Добавлено: 2008-12-17 11:42:47
hizel

Код: Выделить всё

hizel@hzwork:~$ ldd /usr/lib/lighttpd/mod_rewrite.so
        linux-gate.so.1 =>  (0xb7fd3000)
        libpcre.so.3 => /usr/lib/libpcre.so.3 (0xb7f8c000)
        libc.so.6 => /lib/i686/cmov/libc.so.6 (0xb7e31000)
        /lib/ld-linux.so.2 (0xb7fd4000)
hizel@hzwork:~$ man pcre
hizel@hzwork:~$ pcretest                                                 
хе хе, щаз протестим :-)

Re: Требуется помощь по правилам rewrite для lighttpd

Добавлено: 2008-12-17 11:44:28
Ghost_of_Net
hizel писал(а):

Код: Выделить всё

hizel@hzwork:~$ ldd /usr/lib/lighttpd/mod_rewrite.so
        linux-gate.so.1 =>  (0xb7fd3000)
        libpcre.so.3 => /usr/lib/libpcre.so.3 (0xb7f8c000)
        libc.so.6 => /lib/i686/cmov/libc.so.6 (0xb7e31000)
        /lib/ld-linux.so.2 (0xb7fd4000)
hizel@hzwork:~$ man pcre
hizel@hzwork:~$ pcretest                                                 
хе хе, щаз протестим :-)
О_о Я даже не знал что так можно...

Re: Требуется помощь по правилам rewrite для lighttpd

Добавлено: 2008-12-17 11:57:35
hizel
какая команда вас смутила? :)

Re: Требуется помощь по правилам rewrite для lighttpd

Добавлено: 2008-12-17 12:05:09
Ghost_of_Net
Да ни какая... Просто не знал, я вообще мало что знаю по регулярным выражениям.
И как в данном случае тестить?

P.s. Давай на "ты" =)

Re: Требуется помощь по правилам rewrite для lighttpd

Добавлено: 2008-12-17 12:49:26
hizel
мда что то я перемудрил :)

вот мой диалог дабага(сначала вводится регулярное выражение re> потом данные data> для теста, смотрим ответ

Код: Выделить всё

hizel@hzwork:~$ pcretest
PCRE version 7.8 2008-09-05

  re> catalog/(?!(.*)).html
** Delimiter must not be alphanumeric or \
  re> /catalog\/(?!(.*)).html
    > catalog/
data>
  re>
  re> /catalog\/(?!(.*)).html/
data> catalog
No match
data> catalog/
No match
data> catalog\/scuko.html
No match
data>
  re> /catalog\/?!(.*).html/
data> catalog
No match
data> catalog/index.html
No match
data> /catalog\/(.*)).html/
No match
data>
  re> /catalog\/(.*)).html/
Failed: unmatched parentheses at offset 13
  re> /catalog\/(.*).html/
data> catalog
No match
data> catalog/index.html
 0: catalog/index.html
 1: index
data>
  re> /catalog\/(.*).html(/(.{1,2}))(/(.*))/^[[D
** Unknown option '('
  re> /catalog\/(.*).html(\/(.{1,2}))(\/(.*))/
data> catalog/index.html
No match
data> catalog/index.html/11/bazsoundsystem
 0: catalog/index.html/11/bazsoundsystem
 1: index
 2: /11
 3: 11
 4: /bazsoundsystem
 5: bazsoundsystem
data>
  re> /catalog\/(.*).html(?!\/(.{1,2}))(?!\/(.*))/
data> catalog/index.html/11/bazsoundsystem
No match
data>
  re> /catalog\/(.*).html(\/(.{1,2}))?(\/(.*))?/
data> catalog/index.html
 0: catalog/index.html
 1: index
data> catalog/index.html/11
 0: catalog/index.html/11
 1: index
 2: /11
 3: 11
data> catalog/index.html/11/bazsoundsystem
 0: catalog/index.html/11/bazsoundsystem
 1: index
 2: /11
 3: 11
 4: /bazsoundsystem
 5: bazsoundsystem
вывод

Код: Выделить всё

url.rewrite-once = ( "catalog/(.*).html(/(.{1,2}))?(/(.*))?" => "catalog2.php?id=$1&view=$3&start=$5" )
просто тупо копируем выражения, они такие же как в опаче

Re: Требуется помощь по правилам rewrite для lighttpd

Добавлено: 2008-12-17 13:48:36
Ghost_of_Net
Спасибо за помощь, в результате длительных копаний выяснилось что проблема так же существует в php коде.

Re: Требуется помощь по правилам rewrite для lighttpd

Добавлено: 2008-12-17 14:38:21
hizel
та ладно, зато я теперь знаю какие регулярки в lighttpd и как они с apache пресекаются :-D

Re: Требуется помощь по правилам rewrite для lighttpd

Добавлено: 2010-01-20 17:08:22
arty.in.ua
RКому дать денег что б мои правила с апатча на лайти переписали? :smile:


ася 8774773