Возможно, я наблюдаю за чем-то очень простым, htaccess не является моей областью знаний..htaccess Добавление HTTPS к существующим правилам перезаписи
Мой сайт HTTPS-только, чтобы достигнуть этого, корневая папка/содержит следующие строки:
RewriteEngine On
RewriteCond %{ENV:HTTPS} !on
RewriteRule ^(.*) https://%{HTTP_HOST}/$1 [R=301,L]
Это работает просто отлично. Теперь мы имеем новую папку/проектов, которая содержит свои собственные правила HTAccess перевести URL в запросе к базе данных с помощью файла под названием /projects/project.html
The рабочей HTAccess в папку/проектов:
RewriteEngine On
RewriteBase /projects/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ project.html?project=$1 [QSA,L]
Теперь я хотел бы принудительно установить https-соединение на это, потому что правило https в основной директории не применяется к/проектам, если вы сразу посетите http://URL. Поэтому я изменил файл:
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^.*$ https://example.com%{REQUEST_URI} [R=301,L,NE]
RewriteBase /projects/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ project.html?project=$1 [QSA,L]
С этим, он переключается на протокол HTTPS, но я получаю «ERR_TOO_MANY_REDIRECTS».
Когда я изменить строки, как @thickguru предложил, как это:
RewriteRule ^(.*)$ https://example.com/$1 [R,L]
Он перенаправляет меня https://example.com/index.html
сразу.
Я пошарил с настройками, также с информацией this post, однако все же я не могу заставить его работать.
Какую версию apache вы используете? – starkeen
Я не уверен, если я даю правильный ответ, но phpinfo упоминает Apache2, версию API 20051115. Если мне нужно посмотреть в другом месте, сообщите мне об этом :) – SJDS