Я использую Laravel 5.5.
В Laravel есть пара .htaccess, и в моем случае я работаю с .htaccess в корневом каталоге и в общей папке.
Все это время я использовал этот код в корне .htaccess для настройки общей папки:
RewriteEngine On
RewriteRule ^(.*)$ public/$1 [L]
и мой сайт загружается, когда я захожу на главную страницу
После этого я захотел принудительно перенаправить все страницы, используя https. Итак, сначала, когда я пытаюсь поместить этот код в корневой каталог .htaccess, он ничего не делает. Он продолжает загружаться с http.
RewriteEngine On
RewriteRule ^(.*)$ public/$1 [L]
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Ну, это имеет смысл, потому что когда я настраиваю общую папку, я должен поместить перенаправление в .htaccess, который находится внутри общей папки.
Хорошо, я попробовал вот так:
Корень .htaccess:
RewriteEngine On
RewriteRule ^(.*)$ public/$1 [L]
Публичный .htaccess
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews -Indexes
</IfModule>
RewriteEngine On
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Эта комбинация работает. Это перенаправляет на https.
Но есть одна проблема сейчас. Когда я вхожу на домашнюю страницу или открываю веб-сайт из результатов поиска, URL выглядит следующим образом:
https://mywebsite.com/public/en
Когда я захожу на другие страницы, у меня нет проблем, связанных с «публичным» путем в URL. Итак, допустим, я хочу открыть страницу контактов, URL-адрес https://mywebsite.com/en/contact. Отлично.
Как можно избежать этой "публичности" в моем URL при входе на домашнюю страницу?