Грамотный редирект в htaccess
1.
GodZiLLa (17.04.2020 / 18:14)
Преамбула такая :
Зарегал новый домен, припарковал его к одному из сайтов.
Чтобы пока домен созревал, и не вёл зеркалом на основной сайт, подуман сделать перенаправление нового домена на страницу заглушку.
Но вот ничего умнее шаблона от 301 редиректа не нашёл.
Но с таким вариантом сайт падает, видимо синтаксис нарушен.
RewriteCond %{HTTP_HOST} site.net
RewriteRule (.*) https://site.net/indexb.html $1 [R=301,L]
C таким вариантом не получается, ошибка.
Может кто получше в хтачессе разбирается, что здесь, не так ?
Или есть лучше вариант ?
Или это не реально, сделать такое перенаправление грамотно ?
2.
erasier (17.04.2020 / 18:56)
RewriteEngine On
RewriteRule ^ /indexb.html [L]
3.
GodZiLLa (17.04.2020 / 20:20)
erasier, но ведь это будет действовать для обоих доменов, а нужно только для паркованного.
4.
JustZero (17.04.2020 / 22:25)
RewriteCond %{HTTP_HOST} ^sub.domain.com
RewriteRule ^(.*)$ /subdomains/sub/$1 [L,NC,QSA]
5.
erasier (17.04.2020 / 22:29)
Тогда так
RewriteEngine On
RewriteCond %{HTTP_HOST} ^site\.net$
RewriteRule ^ /indexb.html [L]
6.
GodZiLLa (18.04.2020 / 10:30)
Тогда так
RewriteEngine On
RewriteCond %{HTTP_HOST} ^site\.net$
RewriteRule ^ /indexb.html [L]
C этим кодом почему то выдаёт:
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
JustZero, к сожалению это для субдоменов, для двух доменов, такой вариант не подходит.
7.
erasier (18.04.2020 / 11:03)
GodZiLLa, я так понимаю, ты купил этот домен? Так почему бы не создать для него свой отдельный домен в панели?
8.
GodZiLLa (18.04.2020 / 11:30)
erasier, у меня уже весь лимит на сайты в аккаунте закончен.
Просто повесить домен в панели, без данных, без страницы, это как то не то.
Пришлось припарковать его к работающему сайту, но не хотелось бы, чтобы поисковики его посчитали зеркалом, со всеми вытекающими.
Поэтому и заморочился, чтобы завязать его на страницу-заглушку, пока не будет решена его дальнейшая участь.
9.
GodZiLLa (18.04.2020 / 13:49)
Вроде как нашёл рабочий вариант:
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} sait.ru$
RewriteRule .* https://site.ru/indexb.html [L,R]
Но одна проблема: В строке адреса именно эта страница, но в браузере ошибка
Страница недоступна
Сайт выполнил переадресацию слишком много раз.
ERR_TOO_MANY_REDIRECTS
Проверил, идет десять раз подряд перенаправление с выдачей одного результата :
HTTP/1.1 302 Found
Server: nginx-reuseport/1.13.4
Date: Sat, 18 Apr 2020 10:38:10 GMT
Content-Type: text/html; charset=iso-8859-1
Content-Length: 288
Connection: keep-alive
Keep-Alive: timeout=30
Location: https://site.net/indexb.html
Cache-Control: max-age=43200
Expires: Sat, 18 Apr 2020 22:38:10 GMT
Сама страница существует, правда не в корне сайта, а средствами движка
10.
erasier (18.04.2020 / 15:38)
Попробуй так
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^sait\.ru$
RewriteCond %{REQUEST_URI} !^/indexb\.html$
RewriteRule .* https://site.ru/indexb.html [L,R]
11.
GodZiLLa (18.04.2020 / 17:18)
erasier, спасибо ! С некоторой переделкой, и странностями, но вроде как заработало ! )
Когда полностью твой код использовал, то отправляло просто на основной домен.
Потом использовал только последние три строки без обратных слэш и заработало :
RewriteCond %{HTTP_HOST} ^site.net$
RewriteCond %{REQUEST_URI} !^/indexb.html$
RewriteRule .* https://site.net/indexb.html [L,R]
Сейчас только ещё проверил на заголовки, что возвращает, есть одна переадресация, но потом 200 ок
HTTP/1.1 302 Found
Server: nginx-reuseport/1.13.4
Date: Sat, 18 Apr 2020 14:14:44 GMT
Content-Type: text/html; charset=iso-8859-1
Content-Length: 288
Connection: keep-alive
Keep-Alive: timeout=30
Location:
https://site.net/indexb.html
Cache-Control: max-age=43200
Expires: Sun, 19 Apr 2020 02:14:45 GMT
HTTP/1.1 200 OK
Server: nginx-reuseport/1.13.4
Date: Sat, 18 Apr 2020 14:14:45 GMT
Content-Type: text/html
Content-Length: 3843
Connection: keep-alive
Keep-Alive: timeout=30
Vary: Accept-Encoding
Last-Modified: Sat, 18 Apr 2020 11:38:11 GMT
ETag: "f03-5a38f19c1a939"
Vary: Accept-Encoding
Cache-Control: max-age=43200
Expires: Sun, 19 Apr 2020 02:14:45 GMT
Accept-Ranges: bytes
12.
erasier (18.04.2020 / 18:19)
GodZiLLa, чтобы небыло переадресации, можно вот так попробовать
RewriteCond %{HTTP_HOST} ^site.net$
RewriteRule .* indexb.html [L]
Или это уже было?
13.
GodZiLLa (18.04.2020 / 18:51)
erasier, вроде как было
Может после выходных ещё проверю.
А сейчас пока вроде работает, нехай себе до лучших времён ))
Спасибо за помощь !
14.
GodZiLLa (20.04.2020 / 17:18)
erasier, этот метод тоже работает, правда без принудительной переадресации на https. Но плюс в том, что в строке браузера остаётся только чистый домен, без указания страницы.
Даж не знаю, что лучше, что с зеркалом не http-https, но без отображения в строке адреса страницы, или прежний код, с принудительной отправкой на https, но с указанием страницы indexb.
15.
erasier (20.04.2020 / 18:51)
GodZiLLa, одно другому не мешает, добавь туда это)
RewriteCond %{SERVER_PORT} ^80$ [OR]
RewriteCond %{HTTP} =on
RewriteRule ^ https://site.net [R=301,L]
16.
GodZiLLa (21.04.2020 / 09:16)
erasier, возьму и эти строчки на заметку, но пока и так устраивает, для парковочной страницы сойдёт наверное ))
Спасибо большое за помощь !!!
URL:
https://visavi.net/topics/44370