Переписывание URL-адресов для разных протоколов в .htaccess
Мне нужна помощь при перезаписи url в .htaccess.
Итак, проблема связана с различными протоколами: https и http. Основной целью перезаписи является удаление "www" из URL, но протокол должен оставаться таким же, как и раньше.
Например, когда у меня есть URL, например http://www.domain.com/request, он должен быть перенаправлен на http://domain.com/запрос. Я разрешаю это с помощью следующих правил:
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]