Як перенаправити корінь і тільки корінь через htaccess?


53

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

приклад:

mysite.com/1 переспрямовує кудись mysite.com/admin, відкриває сторінку

я хочу, щоб mysite.com/ переспрямовувала на mysecondsite.com і тільки це з перенаправленням 301 за допомогою htaccess

Відповіді:


75

Спробуйте це:

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

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


1
У моєму випадку мені потрібно було перенаправляти трафік на mysite.com/, але не на foo.mysite.com, тому довелося додати регулярний вираз до рядка 2: RewriteCond %{HTTP_HOST} ^mysite\.com$ [NC]щоб переконатися, що збіг був саме точним господарем
jaygooby

Ефективніше перевірити URL-шлях у RewriteRule шаблоні (як у відповіді @ DaveForgac), а не використовувати додаткову умову для перевірки REQUEST_URIзмінної сервера.
MrWhite

38

Якщо ви маєте на увазі, що хочете переадресувати "/" на інший домен, це спрацює:

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

Це відповідає лише кореням домену без нічого після цього, тому він буде лише перенаправляти ім'я домену без вказаного імені файлу.


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

15

Це має працювати чудово:

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

2
Це було б краще (до існуючих відповідей), якщо ви вже не використовуєте mod_rewrite для інших переадресацій.
MrWhite

-3

Коротше рішення:

Redirect 301 / http://mysecondsite.com/

12
Це НЕ буде робити те, що хоче ярд. Він буде перенаправляти ВСІ сторінки, а не лише корінь.
шароз
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.