Apache перенаправляет безопасный на небезопасный для определенных поддоменов - PullRequest
0 голосов
/ 18 января 2012

У меня есть несколько доменов с одним и тем же поддоменом, доступ к которым может быть безопасным или невозможным. Мне нужно перенаправить каждый запрос, который приходит с redirect .somesite.com, чтобы он был перенаправлен на безопасный сайт. Мне нужен исходный URL, домен, и если сайт был запрошен как безопасный или нет.

http://redirect.site1.com/page?id=1

Перенаправляет на

https://process.site4.com/page?id=3&domain=a.site1.com&secure=0

и

https://redirect.site2.com/page?id=2

Перенаправляет на

https://process.site4.com/page?id=3&domain=a.site2.com&secure=1

и

http://redirect.site3.com/page?id=3

Перенаправляет на

https://process.site4.com/page?id=3&domain=a.site3.com&secure=0

и

http://www.site3.com/page?id=3

Остается как

http://www.site3.com/page?id=3

1 Ответ

1 голос
/ 18 января 2012

Я полагаю, вы хотите, чтобы строки запроса идентификатора совпадали в перенаправлении?

Попробуйте это в файле .htaccess в корне документа (или в конфигурации сервера / vhost измените регулярное выражение ^page$ на^/page$):

RewriteEngine On

# check if secure= is already set, and set it either to 1 or 0
RewriteCond %{QUERY_STRING} !secure=
RewriteCond %{HTTPS} on
RewriteRule ^page$ /page?%{QUERY_STRING}&secure=1 [L]

RewriteCond %{QUERY_STRING} !secure=
RewriteCond %{HTTPS} off
RewriteRule ^page$ /page?%{QUERY_STRING}&secure=0 [L]

# check if the host starts with a "redirect." and match against the "/page" URI
RewriteCond %{HTTP_HOST} ^redirect\.(.+)$ [NC]
RewriteRule ^page$ https://process.site4.com/page?domain=a.%1 [QSA,R,L]

QSA в последнем правиле гарантирует, что параметры строки «secure =» и первоначального «id =» запроса будут добавлены в URL.

...