В настоящее время мы имеем это правило в .htaccess.htaccess HTTPS к HTTP перенаправление конфликта с существующим правилом
RewriteEngine on <br>
RewriteCond %{REQUEST_URI} !^/site/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /site/$1
RewriteRule ^(/)?$ site/index [L]
Что это делает для любого визита мы будем перенаправлять на место вызова вложенной папки, если страница не найдены. И когда это произойдет, URL-адрес не будет отображаться как подпапка.
Пример, если у нас есть /rootFolder/site/temp.html это будет отображаться в URL, как
http://www.domain.com/temp.html
Это работает хорошо, но теперь нам нужно добавить HTTPS перенаправление, если пользователь посещении сайта.
Это новое правило, которое я придумал
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} !^/site/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ https://%{HTTP_HOST}/site/$1
RewriteRule ^(/)?$ https://%{HTTP_HOST}/site/index [L]
Но проблема с этим один теперь URL будет отображаться сайт вложенную https://www.domain.com/site/temp.html
Как можно достичь, так что если пользователь делает
http://www.domain.com/temp.html найдет temp.html в подпапке сайта и перенаправляет на https, а URL будет показывать только
https://www.domain.com/temp.html
Благодаря
это было первое, что я попробовал, и он не работает. Странно, что это работает на моем mac, но не работает с apache на AWS. Вот правило RewriteEngine на RewriteCond% {HTTPS} выкл RewriteRule^$ HTTPS (*.): //% {HTTP_HOST}% {REQUEST_URI} [L, R = 301] RewriteCond% {REQUEST_URI} ^/сайт/ RewriteCond% {REQUEST_FILENAME}! -f RewriteCond% {REQUEST_FILENAME}! -d RewriteRule^(. *) $/сайт/$ 1 RewriteRule^(/)? $ сайт/индекс [L] – user332951
Когда ты говорят, что это не работает, что происходит точно? – Vrac
в соответствии с трассировкой сети на chrome он запускает 301 https перенаправление, но второй блок не вызывает вызов. Таким образом, https не отвечает (слишком долго реагировать) – user332951