Почему-то не работает urlrewrite, вместо целевых страниц отдаётся 404.
Модуль в Апаче подключен, в htaccess прописано:
[CODE]<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*[^/])$ $1/ [L,R=301]
RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !/bitrix/urlrewrite.php$
RewriteRule ^(.*)$ /bitrix/urlrewrite.php [L]
RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization}]
</IfModule>
[/CODE]
В /urlrewrite.php прописано:
[CODE]<?
$arUrlRewrite = array(
array(
"CONDITION" => "#^/bitrix/services/ymarket/#",
"RULE" => "",
"ID" => "",
"PATH" => "/bitrix/services/ymarket/index.php",
),
array(
"CONDITION" => "#^/catalog/product/#",
"RULE" => "",
"ID" => "bitrix:catalog",
"PATH" => "/catalog/index.php",
),
array(
"CONDITION" => "#^/personal/order/#",
"RULE" => "",
"ID" => "bitrix:sale.personal.order",
"PATH" => "/personal/order/index.php",
),
array(
"CONDITION" => "#^/catalog\\?.*#",
"RULE" => "",
"ID" => "bitrix:catalog",
"PATH" => "/catalog/index.php",
),
array(
"CONDITION" => "#^/1234567890/#",
"RULE" => "",
"ID" => "",
"PATH" => "/catalog/index.php",
),
array(
"CONDITION" => "#^/reviews/#",
"RULE" => "",
"ID" => "bitrix:news",
"PATH" => "/reviews/index.php",
),
array(
"CONDITION" => "#^/vendors/#",
"RULE" => "",
"ID" => "bitrix:news",
"PATH" => "/vendors/index.php",
),
array(
"CONDITION" => "#^/catalog/#",
"RULE" => "",
"ID" => "bitrix:catalog",
"PATH" => "/catalog/index.php",
),
array(
"CONDITION" => "#^/news/#",
"RULE" => "",
"ID" => "bitrix:news",
"PATH" => "/news/index.php",
),
array(
"CONDITION" => "#^/stock#",
"RULE" => "",
"ID" => "",
"PATH" => "/vendors/index.php",
),
);
?>
[/CODE]
При этом старые правила вроде /vendors/ работают, а добавленные мной (/1234567890/, /stock и т.д.) -- нет. Более того, отключение модуля или переименование /urlrewrite.php, похоже, на работу старых правил не влияет.
Модуль в Апаче подключен, в htaccess прописано:
[CODE]<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*[^/])$ $1/ [L,R=301]
RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !/bitrix/urlrewrite.php$
RewriteRule ^(.*)$ /bitrix/urlrewrite.php [L]
RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization}]
</IfModule>
[/CODE]
В /urlrewrite.php прописано:
[CODE]<?
$arUrlRewrite = array(
array(
"CONDITION" => "#^/bitrix/services/ymarket/#",
"RULE" => "",
"ID" => "",
"PATH" => "/bitrix/services/ymarket/index.php",
),
array(
"CONDITION" => "#^/catalog/product/#",
"RULE" => "",
"ID" => "bitrix:catalog",
"PATH" => "/catalog/index.php",
),
array(
"CONDITION" => "#^/personal/order/#",
"RULE" => "",
"ID" => "bitrix:sale.personal.order",
"PATH" => "/personal/order/index.php",
),
array(
"CONDITION" => "#^/catalog\\?.*#",
"RULE" => "",
"ID" => "bitrix:catalog",
"PATH" => "/catalog/index.php",
),
array(
"CONDITION" => "#^/1234567890/#",
"RULE" => "",
"ID" => "",
"PATH" => "/catalog/index.php",
),
array(
"CONDITION" => "#^/reviews/#",
"RULE" => "",
"ID" => "bitrix:news",
"PATH" => "/reviews/index.php",
),
array(
"CONDITION" => "#^/vendors/#",
"RULE" => "",
"ID" => "bitrix:news",
"PATH" => "/vendors/index.php",
),
array(
"CONDITION" => "#^/catalog/#",
"RULE" => "",
"ID" => "bitrix:catalog",
"PATH" => "/catalog/index.php",
),
array(
"CONDITION" => "#^/news/#",
"RULE" => "",
"ID" => "bitrix:news",
"PATH" => "/news/index.php",
),
array(
"CONDITION" => "#^/stock#",
"RULE" => "",
"ID" => "",
"PATH" => "/vendors/index.php",
),
);
?>
[/CODE]
При этом старые правила вроде /vendors/ работают, а добавленные мной (/1234567890/, /stock и т.д.) -- нет. Более того, отключение модуля или переименование /urlrewrite.php, похоже, на работу старых правил не влияет.