Я пытаюсь перенаправить только свой домен верхнего уровня, например. 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]