Привет, ЛОР!
Смотри, какая штука: есть сервер с работающим на нем веб-проектиком на bitrix (гусары, молчать!). И, как в лучших домах Лондона, на нем помимо блэкджека есть urlrewrite. Конфигурация сервера - apache бэкэндом, nginx фронтэндом. Сейчас стоит
nginx version: nginx/1.0.15
.htaccess:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !/bitrix/urlrewrite.php$
RewriteCond %{REQUEST_URI} !/nagios$
RewriteCond %{REQUEST_URI} !/munin$
RewriteCond %{REQUEST_URI} !/server-status$
RewriteRule ^(.*)$ /bitrix/urlrewrite.php [L]
1.2.4-1.el6.ngx
access.log:
[15/Jul/2013:21:58:07 +0400] "GET /profile/627/ HTTP/1.1" 404 16345 "http://189.202.23.90/users/" "Mozilla/5.0 (X11; Linux i686; rv:22.0) Gecko/20100101 Firefox/22.0" 1373911087.310
error.log:
[notice] 18682#0: *11 rewritten data: "/bitrix/urlrewrite.php", args: "", client: 95.79.235.116, server: bx, request: "GET /upload/iblock/2db/%D0%BC%D0%B0%D0%BD%D0%B6%D0%B5%D1%82%D0%B0.jpg HTTP/1.1", host: "189.202.23.90", referrer: "http://189.202.23.90/profile/627/"
if (!CHTTP::isPathTraversalUri($_SERVER["REQUEST_URI"]))
{
foreach($arUrlRewrite as $val)
{
if(preg_match($val["CONDITION"], $requestUri))
{
Напоследок примеры правил рерайта:
<?
$arUrlRewrite = array(
array(
"CONDITION" => "#^/profile/([0-9]*)/{0,1}portfolio/edit/([0-9]+|NEW)\\?{0,1}#",
"RULE" => "user_id=$1&ID=$2&",
"ID" => "",
"PATH" => "/profile/portfolio/edit.php",
),
array(
"CONDITION" => "#^/profile/([0-9]*)/{0,1}battle/call/([0-9]+)/{0,1}\\?{0,1}#",
"RULE" => "user_id=$1&BATTLE_ID=$2&$3",
"ID" => "",
"PATH" => "/profile/battle/battle.call.php",
))
?>
ЛОР, в какую сторону рыть, чтобы решить проблему?