Перезапись URL для разных протоколов в.htaccess

Мне нужна помощь с переписыванием URL в.htaccess.

Так что проблема в разных протоколах: https и http. Основная цель переписывания - убрать "www" из URL, но протокол должен остаться таким же, каким он был раньше.

Например, когда у меня есть URL-адрес, такой как http: //www.domain.com/request, он должен быть перенаправлен на http: //domain.com/request. Я разрешаю это с этими правилами:

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

Но в случае, если URL выглядит как https: //www.domain.com/request, он должен быть перенаправлен на https: //domain.com/request.

К сожалению, вышеприведенное правило будет перенаправлять на http независимо от текущего протокола.

Заранее спасибо.

1 ответ

Решение

Это довольно похоже на связанный возможный дубликат, но так как это заставляет www где вы хотите удалить его, это может потребовать отдельного ответа.

Попробуйте что-то вроде этого:

RewriteCond %{HTTP_HOST} ^www\.
RewriteCond %{HTTPS}s ^on(s)|off
RewriteCond http%1://%{HTTP_HOST} ^(https?://)(www\.)?(.+)$
RewriteRule ^ %1%3%{REQUEST_URI} [R=301,L]
Другие вопросы по тегам