2

Я пытаюсь это сделать:htaccess перенаправить домен на https, субдомен с параметром на http

Заставьте https для моего основного домена.

HTTP или https://www.domain.com ->https://domain.com
HTTP или https://domain.com ->https://domain.com

это Htaccess кодирование для домена

RewriteEngine On 
RewriteCond %{HTTPS} off 
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L] 

это работает отлично

Но не для субдоменов

Я хочу результат как

https://www.domain.com/index.php?username=abc => http://abc.domain.com 
http://www.domain.com/index.php?username=abc => http://abc.domain.com 

И всегда удалять www и https по http.

но не знает, как писать Htaccess код для субдомена

+0

не это для моего домена HTAccess RewriteEngine На RewriteCond% {HTTPS} от RewriteRule HTTPS (*.): //% {HTTP_HOST}% {REQUEST_URI} [R, L] , но у меня нет Идея для http subdomain – Amy

+0

Этот вопрос уже ответил здесь: http://stackoverflow.com/questions/4398951/force-ssl-https-using-htaccess-and-mod-rewrite – Joro

+0

@Joro Извините, нет, этот вопрос делает _not_ ответьте на этот вопрос. – arkascha

ответ

1

Это первое проверить, если вам нужно перенаправить на субдомен на основе параметра имени пользователя в строке запроса, если запрос index.php. Затем, переписывая на этот поддомен, он будет копировать всю цепочку вместе с ней, но не указывая параметр имени пользователя, сохраняя при этом все остальные параметры.

Вторая часть проверит ваш основной домен с WWW или без него, а затем наложит на него https, если мы еще не решили перенаправить на поддомен.

RewriteEngine On 

#match either the www subdomain or no subdomain 
    RewriteCond %{HTTP_HOST} ^(?:www.)?(?:domain\.com)$ 
#which request index.php 
    RewriteCond %{REQUEST_URI} ^/index\.php 
#and contain a username paramater 
    RewriteCond %{QUERY_STRING} ^(.*?)(?:^|&)username=([^&]+)(.*?)$ 
#then rewrite them to username.domain.com without the username parameter 
    RewriteRule^http://%2.domain.com%{REQUEST_URI}?%1%3 [R,QSA,L] 

#match either the www subdomain or no subdomain 
    RewriteCond %{HTTP_HOST} ^(?:www.)?(?:domain\.com)$ 
#which was requested without https 
    RewriteCond %{HTTPS} off 
#then redirect to https 
    RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI} [R,L] 
+0

-> спасибо чувак из нижней части сердца, но небольшая проблема, его ok username = abc, тогда abc.domain.com url работает, но не может извлекать данные, используя username = abc – Amy

+0

Если вы хотите включить параметр имени пользователя, используйте : 'RewriteRule^http: //%2.domain.com% {REQUEST_URI} [R, L]' – Ultimater

+0

, после чего строка – Amy

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