#.htaccess #mod-rewrite
#.htaccess #мод-перезапись
Вопрос:
У меня есть текущий htaccess в папке, расположенной в http://www.mydomain.com/dev
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /dev/index.php [L]
Я попытался изменить свою последнюю строку на:
RewriteRule ^(.*)$ https://www.mydomain.com/dev/index.php [L]
Однако это не сработало, и сайт выдал ISE. Все должно выполняться mydomain.com/dev/index.php .
Ответ №1:
Самый простой способ добиться этого — создать отдельный виртуальный хост на порту 80, который перенаправляет все на https. Должно выглядеть примерно так в вашей конфигурации Apache:
<VirtualHost *:80>
ServerName example.com
# Force usage of SSL
Redirect / https://example.com/
</VirtualHost>
<VirtualHost 127.0.0.1:443>
DocumentRoot /var/www/vhosts/example.com/httpdocs
ServerName example.com
</VirtualHost>
Это всегда должно перенаправлять на ssl-эквивалент запрашиваемой страницы, сохраняя при этом все остальные ваши правила без изменений. Если у вас нет доступа к глобальной конфигурации Apache (например, на компьютерах с общим хостингом), попросите вашего хостера применить вышеуказанное к вашей записи vhost.