Установка приложения Laravel 6 в подпапке на виртуальном хостинге без S SH: дубликат URL в подпапке - PullRequest
0 голосов
/ 28 января 2020

Я пытался установить приложение Laravel 6 на виртуальный хостинг без S SH. URL приложения - https://example.com. Все работает нормально, однако есть дубликат адреса (подкаталог), например: https://example.com/subdirectory/public. Я хотел бы скрыть эту часть.

Структура каталогов:

+public_html
     .htaccess
     +subfolder
          +vendeor
          ...
          +public
             index.php
             .htaccess

Содержимое .htaccess в public_html:

RewriteEngine On

RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

RewriteCond %{REQUEST_URI} !/subfolder/public [NC]
RewriteRule ^(.*)$ subfolder/public/$1 [L]
RewriteRule !^subfolder/ /subfolder/public%{REQUEST_URI}  [L]

.htaccess содержимое в public_html/subfolder/public/.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>

.env содержимое файла конфигурации:

...
APP_URL=https://www.example.com
...

Проблема: https://example.com/subfolder/public, https://example.com/subfolder/public/contact et c. доступен. Как предотвратить эту ситуацию?

...