Перенаправление доменов в другой и добавление перенаправленного домена в виде строки запроса - PullRequest
0 голосов
/ 13 февраля 2020

В моем файле htaccess есть следующее, которое перенаправляет все домены, указывающие на это местоположение, на somedomain.uk, который работает:

RewriteCond %{HTTP_HOST} !^www\.somedomain\.uk
RewriteRule ^(.*)$ http://www.somedomain.uk$1 [R=301,L]

Есть ли способ передать домен перенаправления на somedomain.uk как параметр.

например, переход на example.com будет перенаправлен на https://www.somedomain.uk/?url=example.com

Спасибо

1 Ответ

1 голос
/ 13 февраля 2020

Конечно, это возможно:

RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\.somedomain\.uk$
RewriteRule ^ http://www.somedomain.uk%{REQUEST_URI}?url=%{HTTP_HOST} [R=301]

Я бы, однако, предложил использовать другое имя параметра, поскольку имя хоста не"url".

Хорошей идеей будет начать с временного перенаправления 302 и изменить его на постоянное перенаправление 301 позже, если вы уверены, что все настроено правильно. Это предотвращает проблемы с кешированием при испытаниях ...

Эта реализация будет работать аналогично в конфигурации хоста http-серверов или внутри файла распределенной конфигурации (файл ".htaccess"). Очевидно, что модуль перезаписи должен быть загружен внутри http-сервера и включен на хосте http. Если вы используете распределенный файл конфигурации, вам нужно позаботиться о том, чтобы его интерпретация была включена вообще в конфигурации хоста и чтобы он находился в папке DOCUMENT_ROOT хоста.

И общее замечание: вы всегда должны предпочитать размещать такие правила в конфигурации хоста http-серверов вместо использования файлов конфигурации Dynami c (".htaccess"). Эти распределенные файлы конфигурации добавляют сложность, часто являются причиной неожиданного поведения, их трудно отладить, и они действительно замедляют работу http-сервера. Они предоставляются только в качестве последнего варианта для ситуаций, когда у вас нет доступа к реальной конфигурации хоста http-серверов (читай: действительно дешевые поставщики услуг) или для приложений, настаивающих на написании своих собственных правил (что является очевидным кошмаром безопасности).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...