/catalog/
какой результат ожидаете?/catalog/all/
существующая папка со своим index.html или index.php./catalog/all/
не является физически существующей папкой, то запрос уходит в /bitrix/urlrewrite.php
. А там уже маршрутизацию нужно настраивать средствами самого битрикса а не .htaccess RewriteRule ^(.*)$ /catalog/all/ [NC]
[L]
так что обработка запроса не останавливается и другие правила могут что-нибудь поменять.location = my.jpg { ... } location ~ ^my\.jpg$ { ... }
/
, так что должно бытьlocation = /my.jpg {
...
}
location ~ ^/my\.jpg$ {
...
}
RewriteRule ^provajdery$ https://%0/ [R=301,L]
.php
RewriteRule ^provajdery\.php$ https://%0/ [R=301,L]
RewriteCond %{HTTP_HOST} ^(?>www\.|)[^.]+\.site\.ru$ [NC]
RewriteRule ^new\.php$ https://%0/ [R=301,L]
RewriteCond %{HTTP_HOST} ^domen\.site\.ru$ [NC]
RewriteRule ^new\.php$ https://domen.site.ru/ [R=301,L]
для одного слова или группы
(\S+ )
совпадений не найдёт.^\S+( \S+)*$
В словах не могут содержаться:
знаки препинания и прочие символы
\S
наверно должно быть перечисление нужных букв [a-zA-Zа-яёА-ЯЁ]
RewriteRule ^index\.php/(.*) http://site.local/$1 [R=301,L]
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^index\.php(?:/(.*)|) http://site.local/$1 [R=301,L]
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews -Indexes
</IfModule>
RewriteEngine On
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [L,R=301]
# Send Requests To Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews -Indexes
</IfModule>
RewriteEngine On
RewriteRule ^index\.php/(.*) http://site.local/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteRule .* http://site.local/$0 [R=301,L]
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [L,R=301]
# Send Requests To Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
$_SERVER['REQUEST_URI']
скрипт всегда получает адрес в первоначальном виде, а не результат преобразований RewriteRule.Если бы в REQUEST_URI оставался результат последнего преобразования
RewriteRule ^(.*)$ /bitrix/urlrewrite.php [L]
то при любом запросе в REQUEST_URI всегда было бы /bitrix/urlrewrite.php и ЧПУ не работал бы.
Результат работы предпоследнего преобразования можно поискать в
$_SERVER['REDIRECT_URL']
. Предпоследним должно срабатывать как раз правилоRewriteRule ^(.*)$ /catalog/all/ [NC,L]
Так что рулить маршрутами нужно средствами самого битрикса.
Если добавить R=301, то должен быть 301-й редирект на /catalog/all/. Если этого не происходит, то перед проверкой нужно сбросить кеш браузера.