Вопрос: Как перенаправить root и только root через htaccess?


Я хочу перенаправить только мой корень на другой url, но поддерживаю все / sub / директории, где они принадлежат (и перенаправляют)

пример:

mysite.com/1 перенаправляет куда-нибудь mysite.com/admin открывает страницу

я хочу, чтобы mysite.com/ перенаправлялся на mysecondsite.com, и только это с перенастройкой 301 с использованием htaccess


48
2017-08-26 01:25


Источник




Ответы:


Попробуй это:

RewriteEngine on
RewriteCond %{HTTP_HOST} mysite\.com [NC]
RewriteCond %{REQUEST_URI} ^/$
Rewriterule ^(.*)$ http://mysecondsite.com/ [L,R=301]

Если вам не нужно проверять старый домен (например, если каталог, в котором размещен ваш .htaccess, используется только старым доменом), вы можете удалить вторую строку.


68
2017-08-26 02:44



В моем случае мне нужно было перенаправить трафик на mysite.com/, но не на foo.mysite.com, поэтому пришлось добавить регулярное выражение к строке 2: RewriteCond %{HTTP_HOST} ^mysite\.com$ [NC] для обеспечения соответствия для точного хозяина - jaygooby
Более эффективно проверять URL-путь в RewriteRule  шаблон (как в ответе @ DaveForgac), вместо использования дополнительного состояние проверить REQUEST_URI серверной переменной. - MrWhite


Если вы имеете в виду, что вам нужно только перенаправить «/» в другой домен, это будет работать:

RewriteEngine on
RewriteRule ^$ http://www.example.com/ [R=301,L]

Это только соответствует корню домена, после чего ничего не происходит, поэтому он будет перенаправлять только имя домена без указанного имени файла.


35
2017-08-26 02:25



Для меня работала небольшая вариация. Добавленный к нижней части моего htaccess, после всех других правил, я просто хотел отобразить страницу приветствия любому, кто посетил мой корневой домен (без какого-либо поддомена): RewriteCond% {HTTP_HOST}! ^ (Subdomain1 | subdomain2) \. Mysite \ .com $ [NC] RewriteRule ^ $ /welcome.php [NC, L] - MarsAndBack


Это должно работать нормально:

RedirectMatch 301 ^/$ https://example.com/

9
2017-12-17 19:48



Это было бы предпочтительнее (для существующих ответов), если вы еще не используете mod_rewrite для других перенаправлений. - MrWhite


Более короткое решение:

Redirect 301 / http://mysecondsite.com/

-3
2018-01-30 13:18



Это НЕ будет делать то, что хочет жардель. Он перенаправляет ВСЕ страницы, а не только корень. - sharoz