Popoff
popoff.donetsk.ua
mod_rewrite: лишний add path-info postfix
Драсьти
Apache 1.3.29 под виндой
.htaccess:
my.php:
вызываю: http://news.popoff/a-b/my/yuri
показывает:
хотя переменную b не должен передавать в скрипт вообще.
в rewrite.log следующее (жирным выделена строчка, в которой возникает ошибка):
add path-info postfix: t:/www/news/public_html/a-b -> t:/www/news/public_html/a-b/my/yuri
strip per-dir prefix: t:/www/news/public_html/a-b/my/yuri -> a-b/my/yuri
applying pattern '^([^/]+-[^/]+/)(.*)$' to uri 'a-b/my/yuri'
rewrite a-b/my/yuri -> my/yuri
add per-dir prefix: my/yuri -> t:/www/news/public_html/my/yuri
add path-info postfix: t:/www/news/public_html/my/yuri -> t:/www/news/public_html/my/yuri/my/yuri
strip per-dir prefix: t:/www/news/public_html/my/yuri/my/yuri -> my/yuri/my/yuri
applying pattern '^my/([^/]*)$' to uri 'my/yuri/my/yuri'
add path-info postfix: t:/www/news/public_html/my/yuri -> t:/www/news/public_html/my/yuri/my/yuri
strip per-dir prefix: t:/www/news/public_html/my/yuri/my/yuri -> my/yuri/my/yuri
applying pattern '^my/([^/]*)/([^/]*)' to uri 'my/yuri/my/yuri'
rewrite my/yuri/my/yuri -> my.php?a=yuri&b=my
если бы не было первого правила, где удаляется 'a-b', то, все работало бы нормально.
может, кто сталкивался?
-~{}~ 04.04.04 15:11:
пока придумал сделать так:
.htaccess:
Но хотелось бы все-таки не повторять одно и то же регулярное выражение несколько раз...
Драсьти

Apache 1.3.29 под виндой
.htaccess:
PHP:
RewriteEngine On
RewriteRule ^([^/]+-[^/]+/)(.*)$ $2
RewriteRule ^my/([^/]*)$ my.php?a=$1 [L]
RewriteRule ^my/([^/]*)/([^/]*) my.php?a=$1&b=$2 [L]
PHP:
<pre><?php var_dump($_GET); ?></pre>
показывает:
Код:
array(2) {
["a"]=>
string(4) "yuri"
["b"]=>
string(2) "my"
}
в rewrite.log следующее (жирным выделена строчка, в которой возникает ошибка):
add path-info postfix: t:/www/news/public_html/a-b -> t:/www/news/public_html/a-b/my/yuri
strip per-dir prefix: t:/www/news/public_html/a-b/my/yuri -> a-b/my/yuri
applying pattern '^([^/]+-[^/]+/)(.*)$' to uri 'a-b/my/yuri'
rewrite a-b/my/yuri -> my/yuri
add per-dir prefix: my/yuri -> t:/www/news/public_html/my/yuri
add path-info postfix: t:/www/news/public_html/my/yuri -> t:/www/news/public_html/my/yuri/my/yuri
strip per-dir prefix: t:/www/news/public_html/my/yuri/my/yuri -> my/yuri/my/yuri
applying pattern '^my/([^/]*)$' to uri 'my/yuri/my/yuri'
add path-info postfix: t:/www/news/public_html/my/yuri -> t:/www/news/public_html/my/yuri/my/yuri
strip per-dir prefix: t:/www/news/public_html/my/yuri/my/yuri -> my/yuri/my/yuri
applying pattern '^my/([^/]*)/([^/]*)' to uri 'my/yuri/my/yuri'
rewrite my/yuri/my/yuri -> my.php?a=yuri&b=my
если бы не было первого правила, где удаляется 'a-b', то, все работало бы нормально.
может, кто сталкивался?
-~{}~ 04.04.04 15:11:
пока придумал сделать так:
.htaccess:
PHP:
RewriteRule ^[^/]+-[^/]+/my/([^/]*)$ my.html?login=$1 [L]
RewriteRule ^[^/]+-[^/]+/my/([^/]*)/([^/]*) my.html?login=$1&file=$2 [L]
RewriteRule ^([^/]+-[^/]+/)(.*)$ $2 [L]