Ru-Board.club
← Вернуться в раздел «В помощь системному администратору»

» Apache+mod_rewrite

Автор: rolph
Дата сообщения: 14.06.2007 11:08
Народ, подскажите плиз, периодически выскакивает в логах такая ошибка:

[Thu Jun 14 10:31:51 2007] [debug] mod_rewrite.c(1644): [client 212.33.30.18] mod_rewrite's internal redirect status: 0/10.

Причем, для виртуального хоста, mod_rewrite не задан, задан только для другого виртуального хоста.
Автор: Cheery
Дата сообщения: 15.06.2007 04:51
rolph

Цитата:
периодически выскакивает в логах такая ошибка:

это не ошибка.. выглядит так, что ни одно правило не сработало
Автор: Charodei
Дата сообщения: 11.07.2007 15:36
Помогите разобраться, что мне нужно прописать в .htaccess

Есть ссылки:
http://test.ru/index.php/2007/07/10/test1
or
http://test.ru/index.php/2007/07/10/1232

Хочу, чтобы было по человечески:
http://test.ru/2007/07/10/test1
http://test.ru/2007/07/10/1232
Автор: CTaJIuH
Дата сообщения: 16.07.2007 12:18
Раз уж пошла такая пьянка, то и мне помогите разобраться :

Есть ссылки:
http://test.ru/index_en.html
http://test.ru/index_ru.html

Хочу, чтобы было:
http://test.ru/en/
http://test.ru/ru/

Заранее спасибо!

[updated]
сделал так -
RewriteRule ^en/$ index_en.html [NC]
RewriteRule ^ru/$ index_ru.html [NC]

потом увидел что include файлы не грузятся в "новые" страницы. оказалось что надо к адресам дописать "/" в начало и всё будет работать :) уря!
Автор: Break_Action
Дата сообщения: 17.07.2007 20:34
Народ, может кто подскажет, можно ли при помощи mod_rewrite, редиректить POST запросы. Если, и вам не сложно поясните на простом примере как это возможно.
За ранее благодарен.
Автор: Cheery
Дата сообщения: 17.07.2007 20:40
Break_Action

Цитата:
Народ, может кто подскажет, иожно ли при помощи mod_rewrite, редиректить POSt запросы.

эм.. собственно mod_rewrite все равно.. post это или get запрос
Автор: Break_Action
Дата сообщения: 17.07.2007 21:28
Cheery
Если вас не затруднит, приведите, пожалуйста, пример работы!
Автор: Cheery
Дата сообщения: 17.07.2007 21:30
Break_Action

Цитата:
Если вас не затруднит, приведите, пожалуйста, пример работы!

пример какой работы????
еще раз.. пиши правило.. апачу нет разницы что перекидывать - get или post запрос
Автор: Break_Action
Дата сообщения: 18.07.2007 09:12
Cheery
Может у вас есть возможность мне помочь, дело в том, что немогпонять как правильно описать разборку POST запроса.
Имеем следующую схему
name1=value1&name2=value2&name3=value3&...&nameN=valueN
Вопрос как ее правильно разобрать и после правильно подставить

Добавлено
Сорри господа за вопрос, вопрос решился сам собой, просто надо было чуть смекалистее подойти к вопросу!
Автор: iogun
Дата сообщения: 14.08.2007 14:08
подскажите как настроить mod_rewrite для Apache 2 + windows Server, возможно ли использование .htaccess в каталоге с сайтом?
Автор: mtxd
Дата сообщения: 05.09.2007 17:10
Прошу открыть глаза на причину неработы следющих условий:


Код:
RewriteRule ^([a-z]*) index.php?lang=$1 [NS,NC,L]
Автор: dacuan
Дата сообщения: 05.09.2007 17:42
mtxd

Цитата:
Прошу совета, как это понять?

Все очень просто, УРЛ-ы не соответствуют шаблону. Подозреваю что следующий код будет работать:

Код: RewriteRule ^([a-z]*)/(([a-z\_]*)/(([a-z\_]*)/([a-z]*)?)?)? index.php?lang=$1&vendor=$3&drvname=$5&action=$6 [NS,NC,L]
Автор: mtxd
Дата сообщения: 05.09.2007 21:53
dacuan, ба... вот оно как. В паре с RewriteCond %{REQUEST_FILENAME} !-f работает. Только почему-то ваш пример логически отличаются от тех, что я нашел в разных мануалах. Не затруднит ткнуть носом в "нормальный"?


Цитата:
В таких ситуациях лучше сначала попробовать разобраться в логах преобразования
К сожалению, RewriteLog пуст.


Цитата:
Внимание! Правило требует закрывающего слэша для всех случаев кроме domain.com/en/intel/INF_update_utility/download
Работает и с trailing slash'ем.

Ещё раз спасибо.
Автор: dacuan
Дата сообщения: 06.09.2007 09:21
mtxd
Это обычная регулярка, учитывающая, что часть урла не обязательна.


Цитата:
К сожалению, RewriteLog пуст.

А какой уровень логирования стоит?
Автор: mtxd
Дата сообщения: 06.09.2007 10:40
dacuan

Цитата:
Это обычная регулярка, учитывающая, что часть урла не обязательна.
Тогда ладно, об этом толковых статей тоже не много.


Цитата:
А какой уровень логирования стоит?
Даже при 9 лог пустой
Автор: dacuan
Дата сообщения: 06.09.2007 11:02
mtxd

Цитата:
Тогда ладно, об этом толковых статей тоже не много.

Набрал в гуле "Руководство по регулярным выражениям" выдало кучу ссылок
Например,
http://www.ilovejackdaniels.com/cheat-sheets/regular-expressions-cheat-sheet


Цитата:
Даже при 9 лог пустой

Где-то глюк в настройках, должно работать
Автор: mtxd
Дата сообщения: 06.09.2007 12:51
dacuan
Спасибо за заботу, поиском пользуюсь. Я говорил о "толковых" статьях. Согласись, таких крайне мало. Под толковыми я подразумеваю легкопонятные для неподготовленного читателя.


Цитата:
Где-то глюк в настройках, должно работать
Должно. RewriteLog указан, создался, левел тоже максимальный. Больше, вроде, ничего не требуется.
Автор: dacuan
Дата сообщения: 06.09.2007 16:30
mtxd

Цитата:
Под толковыми я подразумеваю легкопонятные для неподготовленного читателя.

Регулярные выражения не совсем та вещь, которая понятна "неподготовленному пользователю". Сам учил регулярки по учебнику Perl, можете попробовать так.


Цитата:
Должно. RewriteLog указан, создался, левел тоже максимальный. Больше, вроде, ничего не требуется.

При этих настройках у меня все работает. Тестировалось на линуксах от ASP 9.0 до Fedora 4.
Автор: mtxd
Дата сообщения: 11.09.2007 11:29
dacuan
Это сложнее чем предполагалось

Можно попросить дополнить

Цитата:
RewriteRule ^([a-z]*)/(([a-z\_]*)/(([a-z\_]*)/([a-z]*)?)?)? index.php?lang=$1&vendor=$3&drvname=$5&action=$6 [NS,NC,L]
ещё одной переменной &filename=$x?

Пошел учить основы регулярок...
Автор: dacuan
Дата сообщения: 11.09.2007 11:46
mtxd

Код: RewriteRule ^([a-z]*)/(([a-z\_]*)/(([a-z\_]*)/([a-z\_]*/([a-z\_]*)?)?)?)? index.php?lang=$1&vendor=$3&drvname=$5&action=$6&filename=$7 [NS,NC,L]
Автор: mtxd
Дата сообщения: 11.09.2007 11:53
dacuan
благодарю за оперативность, но получаем

Код:
[lang] => en
[vendor] => vendor
[drvname] => driver/download/file
[action] =>
[filename] =>
Автор: dacuan
Дата сообщения: 11.09.2007 12:16
mtxd

Код: RewriteRule ^([^/]*)/(([^/]*)/(([^/]*)/([^/]*/([^/]*)?)?)?)? index.php?lang=$1&vendor=$3&drvname=$5&action=$6&filename=$7 [NS,NC,L]
Автор: mtxd
Дата сообщения: 11.09.2007 15:33
dacuan
с этим правилом результат такой:

Цитата:
[lang] => en
[vendor] => vendor
[drvname] => driver
[action] => download/file
[filename] => file

При чем только если слэш вписан вручную.

В связке с правилом

Код:
#Add trailing slash
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ http://www.domain.com/$1/ [R=301]
Автор: dacuan
Дата сообщения: 11.09.2007 15:58
mtxd
Настраивайте лог, и результаты выкладывайте здесь.
Автор: mtxd
Дата сообщения: 11.09.2007 16:11
LogLevel 3 для

Код: RewriteRule ^([a-z]*)/(([a-z]*)/((.*)/(([a-z]*)/(.*)?)?)?)? test.php?lang=$1&vendor=$3&drvname=$5&action=$7&filename=$8 [NS,NC,L]
Автор: dacuan
Дата сообщения: 11.09.2007 16:37
mtxd

Откуда взялись куски кода, выделенные красным? Я ведь давал другие правила.

Код: RewriteRule ^([a-z]*)/(([a-z]*)/((.*)/(([a-z]*)/(.*)?)?)?)? test.php?lang=$1&vendor=$3&drvname=$5&action=$7&filename=$8 [NS,NC,L]
Автор: mtxd
Дата сообщения: 11.09.2007 16:44
Это немного измененный

Код: RewriteRule ^([a-z]*)/(([a-z\_]*)/(([a-z\_]*)/([a-z\_]*/([a-z\_]*)?)?)?)? index.php?lang=$1&vendor=$3&drvname=$5&action=$6&filename=$7 [NS,NC,L]
Автор: dacuan
Дата сообщения: 11.09.2007 17:13
mtxd
А теперь сравним

Код: RewriteRule ^([a-z]*)/(([a-z\_]*)/(([a-z\_]*)/([a-z\_]*/([a-z\_]*)?)?)?)? index.php?lang=$1&vendor=$3&drvname=$5&action=$6&filename=$7 [NS,NC,L]
Автор: mtxd
Дата сообщения: 11.09.2007 17:22
Ситуацию с этим правилом я описал тут.
Вот лог:
[more]
217.147.35.33 - - [11/Sep/2007:17:20:09 +0300] [www.domain.com/sid#80ac55c][rid#809bd44/initial] (3) [per-dir /home/www/www.domain.com/] add path-info postfix: /home/www/www.domain.com/en -> /home/www/www.domain.com/en/Intel/chipset/download/driver
217.147.35.33 - - [11/Sep/2007:17:20:09 +0300] [www.domain.com/sid#80ac55c][rid#809bd44/initial] (3) [per-dir /home/www/www.domain.com/] strip per-dir prefix: /home/www/www.domain.com/en/Intel/chipset/download/driver -> en/Intel/chipset/download/driver
217.147.35.33 - - [11/Sep/2007:17:20:09 +0300] [www.domain.com/sid#80ac55c][rid#809bd44/initial] (3) [per-dir /home/www/www.domain.com/] applying pattern '^(.*)$' to uri 'en/Intel/chipset/download/driver'
217.147.35.33 - - [11/Sep/2007:17:20:09 +0300] [www.domain.com/sid#80ac55c][rid#809bd44/initial] (2) [per-dir /home/www/www.domain.com/] rewrite en/Intel/chipset/download/driver -> http://www.domain.com/en/Intel/chipset/download/driver/
217.147.35.33 - - [11/Sep/2007:17:20:09 +0300] [www.domain.com/sid#80ac55c][rid#809bd44/initial] (2) [per-dir /home/www/www.domain.com/] explicitly forcing redirect with http://www.domain.com/en/Intel/chipset/download/driver/
217.147.35.33 - - [11/Sep/2007:17:20:09 +0300] [www.domain.com/sid#80ac55c][rid#809bd44/initial] (3) [per-dir /home/www/www.domain.com/] add path-info postfix: http://www.domain.com/en/Intel/chipset/download/driver/ -> http://www.domain.com/en/Intel/chipset/download/driver//Intel/chipset/download/driver
217.147.35.33 - - [11/Sep/2007:17:20:09 +0300] [www.domain.com/sid#80ac55c][rid#809bd44/initial] (3) [per-dir /home/www/www.domain.com/] applying pattern '^([^/]*)/(([^/]*)/(([^/]*)/([^/]*/([^/]*)?)?)?)?' to uri 'http://www.domain.com/en/Intel/chipset/download/driver//Intel/chipset/download/driver'
217.147.35.33 - - [11/Sep/2007:17:20:09 +0300] [www.domain.com/sid#80ac55c][rid#809bd44/initial] (2) [per-dir /home/www/www.domain.com/] rewrite http://www.domain.com/en/Intel/chipset/download/driver//Intel/chipset/download/driver -> test.php?lang=http:&vendor=&drvname=www.domain.com&action=en/Intel&filename=Intel
217.147.35.33 - - [11/Sep/2007:17:20:09 +0300] [www.domain.com/sid#80ac55c][rid#809bd44/initial] (3) split uri=test.php?lang=http:&vendor=&drvname=www.domain.com&action=en/Intel&filename=Intel -> uri=test.php, args=lang=http:&vendor=&drvname=www.domain.com&action=en/Intel&filename=Intel
217.147.35.33 - - [11/Sep/2007:17:20:09 +0300] [www.domain.com/sid#80ac55c][rid#809bd44/initial] (3) [per-dir /home/www/www.domain.com/] strip per-dir prefix: /home/www/www.domain.com/favicon.ico -> favicon.ico
217.147.35.33 - - [11/Sep/2007:17:20:09 +0300] [www.domain.com/sid#80ac55c][rid#809bd44/initial] (3) [per-dir /home/www/www.domain.com/] applying pattern '^(.*)$' to uri 'favicon.ico'
217.147.35.33 - - [11/Sep/2007:17:20:09 +0300] [www.domain.com/sid#80ac55c][rid#809bd44/initial] (2) [per-dir /home/www/www.domain.com/] rewrite favicon.ico -> http://www.domain.com/favicon.ico/
217.147.35.33 - - [11/Sep/2007:17:20:09 +0300] [www.domain.com/sid#80ac55c][rid#809bd44/initial] (2) [per-dir /home/www/www.domain.com/] explicitly forcing redirect with http://www.domain.com/favicon.ico/
217.147.35.33 - - [11/Sep/2007:17:20:09 +0300] [www.domain.com/sid#80ac55c][rid#809bd44/initial] (3) [per-dir /home/www/www.domain.com/] applying pattern '^([^/]*)/(([^/]*)/(([^/]*)/([^/]*/([^/]*)?)?)?)?' to uri 'http://www.domain.com/favicon.ico/'
217.147.35.33 - - [11/Sep/2007:17:20:09 +0300] [www.domain.com/sid#80ac55c][rid#809bd44/initial] (2) [per-dir /home/www/www.domain.com/] rewrite http://www.domain.com/favicon.ico/ -> test.php?lang=http:&vendor=&drvname=www.domain.com&action=favicon.ico/&filename=
217.147.35.33 - - [11/Sep/2007:17:20:09 +0300] [www.domain.com/sid#80ac55c][rid#809bd44/initial] (3) split uri=test.php?lang=http:&vendor=&drvname=www.domain.com&action=favicon.ico/&filename= -> uri=test.php, args=lang=http:&vendor=&drvname=www.domain.com&action=favicon.ico/&filename=

[/more]
Автор: dacuan
Дата сообщения: 11.09.2007 17:42
mtxd

Цитата:
Ситуацию с этим правилом я описал тут .

А почему лог был дан для другого правила?

Попробуйте

Код: RewriteRule ^([a-z]*)/(([a-z\_]*)/(([a-z\_]*)/(([a-z\_]*)/([a-z\_]*)?)?)?)? index.php?lang=$1&vendor=$3&drvname=$5&action=$7&filename=$8 [NS,NC,L]

Страницы: 1234567891011

Предыдущая тема: Защита от атак: выбор фаервола и антивируса для сисадмина


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.