Назад | Перейти на главную страницу

Как перенаправить только корневую страницу на другой поддомен через htaccess?

Я пытаюсь перенаправить только свой домен верхнего уровня, например. domain.com на sub.domain.com. Внутренние страницы домена не должны перенаправляться.

Я перешел по следующей ссылке: Как перенаправить root и только root через htaccess?

Но при выполнении поиска на моем сайте запрос был добавлен к поддомену, например:

sub.domain.com/?q=product, где должен был быть domain.com/?q=product

Мой текущий htaccess уже должен быть переписан:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !\.(png|gif|ico|swf|jpe?g|js|css)$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php?sef_rewrite=1 [L,QSA]

Что мне добавить для достижения указанного выше поведения?

Чуть ниже RewriteEngine On, Добавить:

RewriteRule ^$ http://sub.domain.com [R=301,L]

Если я правильно читаю, похоже, вы хотите сохранить строку запроса. Но если вы хотите удалить его, вы должны использовать:

RewriteRule ^$ http://sub.domain.com? [R=301,L]

Редактировать: Чтобы только перенаправить / страница в случае, если у нее нет строки запроса, используйте:

RewriteCond ${QUERY_STRING} ^$
RewriteRule ^$ http://sub.domain.com [R=301,L]

Я использую это утверждение:

ServerName mydomain.tld
RewriteEngine On
RewriteRule ^(.*) http://www.mydomain.tld [R=301,L]

Вы также можете повторно использовать все параметры по этому правилу:

RewriteRule ^(.*) http://www.mydomain.tld$1 [R=301,L]