htaccess: ErrorDocument takes two arguments, Change responses for HTTP errors
ErrorDocument 403 " 'a' \"b\" "
ErrorDocument 403 ' \'a\' "b" '
ErrorDocument 404 /page404.php мне не подходит.
RewriteRule
как-то конфликтуют с этим правилом, то можно проверять с каким кодом было перенаправление и для 4xx 5xx делать исключение пуская в обход основных правил.RewriteCond %{ENV:REDIRECT_STATUS} ^[45]\d\d
RewriteRule ^ - [L]
design/img/file.jpg
совпадает с шаблоном ^([^/]+)/([^/]+)/([^/]+)/?$
RewriteCond %{REQUEST_FILENAME} !-f
относится только одному первому RewriteRule
.RewriteEngine on
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([^/]*)/?$ index.php?module=SectionView§ion_url=$1 [L,QSA]
RewriteRule ^([^/]+)/([^/]+)/?$ index.php?module=CategoryView§ion_url=$1&category_url=$2 [L,QSA]
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/?$ index.php?module=SubcategoryView§ion_url=$1&category_url=$2&subcategory_url=$3 [L,QSA]
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/([^/]+)/?$ index.php?module=SubcategoryView§ion_url=$1&category_url=$2&subcategory_url=$3&subsubcategory_url=$4 [L,QSA]
RewriteRule ^p/([^/]+)/?$ index.php?module=PageView&page_url=$1 [L,QSA]
RewriteRule ^id/([^/]+)/?$ index.php?module=RecordView&id=$1 [L,QSA]
RewriteRule ^/?$ index.php?module=MainView [L,QSA]
RewriteRule ^(.*)_(.*)/$ /$1-$2/ [R=301,L]
RewriteCond -$1-$2 ^(-)(.*)_(.*)|^-(.*)
RewriteCond -%2%1%3%4 ^(-)(.*)_(.*)|^-(.*)
RewriteCond -%2%1%3%4 ^(-)(.*)_(.*)|^-(.*)
RewriteCond -%2%1%3%4 ^(-)(.*)_(.*)|^-(.*)
RewriteCond -%2%1%3%4 ^(-)(.*)_(.*)|^-(.*)
RewriteRule ^(.*)_(.*)/$ /%2%1%3%4/ [R=301,L]
RewriteRule ^(.*)ö(.*) https://site.ru/$1o$2 [R=301,L]
RewriteRule ^(.*)ü(.*) https://site.ru/$1u$2 [R=301,L]
RewriteRule ^(.*)õ(.*) https://site.ru/$1o$2 [R=301,L]
RewriteRule ^(.*)ä(.*) https://site.ru/$1a$2 [R=301,L]
RedirectMatch 301 ^/(catalog1)/[^/]+/([^/]+\.html)$ /$1/$2
RewriteEngine on
RewriteRule ^(catalog1)/[^/]+/([^/]+\.html)$ /$1/$2 [R=301,L]
RewriteRule ^/
тут не нужен /
Первому RewriteRule передается путь от того места, где находится .htaccess, до запрошенного файла. Эта строка никогда не начинается со "/".
Если же mod_rewrite используется в<VirtualHost>
, он будет работать по-другому:
В<VirtualHost>
в RewriteRule попадает весь путь запроса, начиная от первого слеша, заканчивая началом параметров GET:-> "/news/category/post.html". Эта строка всегда начинается со /.http://example.com/some/news/category/post.html?comments_page=3
RewriteCond %{THE_REQUEST} "! /catalog/filter/"
RewriteCond %{THE_REQUEST} "! /catalog/product/"
RewriteRule ^catalog(/.+)$ /catalog/product$1 [L,R=301]
Redirect 301 categoriya https://site.ru/categoriya-new
RewriteEngine on
RewriteRule ^categoriya$ /categoriya-new [R=301,L]
RewriteRule ^podcategoriya$ /podcategoriya-new [R=301,L]
RewriteRule ^categoriya/podkategoriya/(\S+)$ /categoriya-new/podkategoriya-new/$1 [R=301,L]
RewriteRule ^(.*)купить /$1 [R=301,L]
RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.сайт\.ком$
RewriteRule ^(.*)$ https://сайт.ком/$1 [R=301,L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ https://сайт.ком/ [R=301,L]
RewriteRule ^en$ /en/ [R=301,L]
RewriteCond %{REQUEST_URI} (.*/[^/.]+)($|\?)
RewriteRule .* %1.html [R=301,L]
RewriteCond %{REQUEST_URI} !^/en/$
RewriteRule ^(.*)/$ /$1.html [R=301,L]
RewriteCond %{HTTP:SSL} !=1 [NC]
RewriteRule ^(.*) https://сайт.ком/$1 [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !^/wp-admin
RewriteRule . / [R=301,L]
RewriteRule ^massaj(.*)$ http://varmedia.ru/ [R=301,L]
^
означает начало строки, так что с ^massaj
могут совпасть только строки начинающиеся на massaj, а вы проверяете адреса начинающиеся на category/massaj/ и редирект не происходит. RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
и запрос отправляется в index.php. https://varmedia.ru/category/massaj
RewriteRule ^category/massaj https://varmedia.ru/ [R=301,L]
RewriteRule ^(f)(/.*|)$ /$1.php$2 [L]
RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteRule ^([^/.]+)(/.*|)$ /$1.php$2 [L]
RewriteRule ^link/(.+)$ /link.php?key=$1 [L]
# The Friendly URLs part
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
/diagnostika%20%D0%B8
RewriteCond %{THE_REQUEST} " /diagnostika%20%D0%B8 "
RewriteRule ^ /diagnostika [R=301,L]
%XX
.RewriteRule "^diagnostika и$" /diagnostika [R=301,L]
Redirect 301 "/diagnostika и" /diagnostika
RedirectMatch 301 "^/diagnostika и$" /diagnostika
RewriteCond %{THE_REQUEST} "^GET / "
RewriteCond %{HTTP:Cookie} !language
RewriteRule ^$ /uk [L,R=302]