2012-01-18 1 views
0

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

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

Перенаправление

https://process.site4.com/page?id=3&domain=a.site1.com & безопасный =

и

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

Перенаправление

https://process.site4.com/page?id=3&domain=a.site2.com & безопасный =

и

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

Перенаправление

https://process.site4.com/page?id=3&domain=a.site3.com & безопасного =

и

http://www.site3.com/page?i d = 3

остается

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

ответ

1

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

Попробуйте в файле .htaccess в корневом каталоге (или в сервере/ВХост конфигурации, изменить ^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 в последнем правиле гарантирует, что «обеспечение = ', а исходные параметры строки запроса id =' привязаны к URL-адресу.

+0

Как только применить правила только к тем сайтам, которые начинаются с субдомена процесса, но это похоже на то, что мне нужно. – Davin

Смежные вопросы