Laravel .htaccess перенаправить на главную страницу при доступе к url.com/public - PullRequest
0 голосов
/ 11 октября 2018

Мой сайт работает по следующему адресу www.mywebsite.com без каких-либо проблем.Итак, при создании проекта я применил некоторые правила .htaccess в своей корневой папке, как показано ниже:

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>

    RewriteEngine On

    # Remove www    
    RewriteCond %{HTTP_HOST} ^www.mywebsite.com$ [NC]
    RewriteRule ^(.*)$ https://mywebsite.com$1 [R=301,L]

    # Remove http and force https   
    RewriteCond %{HTTPS} !=on
    RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [QSA,R,L]

    RewriteCond %{REQUEST_FILENAME} -d [OR]
    RewriteCond %{REQUEST_FILENAME} -f
    RewriteRule ^ ^$1 [N]

    RewriteCond %{REQUEST_URI} (\.\w+$) [NC]
    RewriteRule ^(.*)$ public/$1 

    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ server.php

</IfModule>

Проблема заключается в том, что если я получаю доступ к www.mywebsite.com/public, я все равно смотрю веб-сайт, но без применения CSS(потому что URL неверный).

Как я могу перенаправить URL www.mywebsite.com/public на www.mywebsite.com, не поджигая мои URL www.mywebsite.com/public/img/someimage.png?


Редактировать : Чтобы прояснить ситуацию:

www.mywebsite.com -> it's working -> I don't want to change that

www.mywebsite.com/public/img/someimage.png -> it's working -> I don't want to change that

www.mywebsite.com/public -> It's working -> I see my website without the CSS applied -> I WANT to change this by redirecting users to www.mywebsite.com

Ответы [ 2 ]

0 голосов
/ 11 октября 2018

Решено .

Отредактировав файл /public_html/public/index.php, я могу проверить, соответствует ли текущий URL моим критериям.

В моем случае всякий раз, когда строка publicприсутствует в URL, он всегда имеет две косые черты (из-за .htaccess), например:

www.mywebsite.com/public/

С учетом сказанного в верхней части файла:

if ($_SERVER['REQUEST_URI'] == '/public/')
{
    header('location: http://' . $_SERVER['HTTP_HOST']);
    exit;
}
0 голосов
/ 11 октября 2018

Вы никогда не должны разрешать доступ к чему-либо за пределами вашей папки public.

Ваш сервер должен быть настроен для доступа к public, а не к главной папке над ним.Не перемещайте файл index.php из папки public.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...