Шпаргалка по различным вариантам перенаправлений, будет периодически обновляться здесь.
Для того чтобы корректно исполнялся модуль перенаправлений, он должен быть установлен в апаче (mod_rewrite в конфиге apache).
После чего, для работоспособности ниже приведенных перенаправлений не забываем добавлять для условий в .htaccess, в начале и конце условий:
<IfModule mod_rewrite.c> RewriteEngine On ... </IfModule>
Если файл не находится, например, в корневой директории сайта, пробуем его достать из другой директории /dir2:
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{DOCUMENT_ROOT}/dir2/$1 -f [OR] RewriteCond %{DOCUMENT_ROOT}/dir2/$1 -d RewriteRule (.*) /dir2/$1 [L] </IfModule>
Перенаправляем все запросы на файлы из одной директории на сайте в другую директорию на этом же сайте
RewriteRule ^product/(.*)$ /products/$1 [L,R=301]
Перенаправляем все запросы на файлы из директории /test на главный сайт http://domain.com
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^test/(.*) http://domain.com/$1 [R=301,L] </IfModule>
Перенаправляем все запросы на файлы с расширением .php из директории /test на файлы с расширением .php главного сайта http://domain.com
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^test/(.*).php http://domain.com/$1.php [R=301,L] </IfModule>