изменить документ root с внутренним перенаправлением .htaccess не работает должным образом - PullRequest
0 голосов
/ 17 января 2020

Здравствуйте, коллеги-разработчики, мне нужно изменить свой документ root некоторую указанную c папку, в которой содержится исходный код моего laravel проекта на виртуальном хостинге, поскольку мой план хостинга не позволяет мне изменять документ по умолчанию root поэтому я не могу изменить свой индекс по умолчанию, поэтому я хочу перенаправить его с помощью .htaccess

, так как далеко я смог внутренне перенаправить с помощью следующего кода

RewriteEngine on
RewriteCond %{HTTP_HOST} ^example.com$
RewriteRule ^(.*)$ master/project/public/index.php

, выполнив это я могу перенаправить в нужную папку, но по какой-то причине это не работает для активов, я продолжаю получать 404 на все активы

master/project/public/css/[all styles]
master/project/public/js/[all scritps]
master/project/public/images/[all pictures]
master/project/public/fonts/[all fonts]

как я могу добиться этого без необходимости изменения URL-адресов ,

внутреннее перенаправление работает, но я не могу понять, почему все мои активы возвращают 404

Ответы [ 2 ]

0 голосов
/ 17 января 2020

так что я нашел решение своей проблемы, с этим решением я и закончил.

RewriteEngine on
RewriteCond %{HTTP_HOST} ^example.com$ [NC,OR]
RewriteCond %{HTTP_HOST} ^www.example.com$
RewriteCond %{REQUEST_URI} !master/project/public/
RewriteRule (.*) /master/project/public/$1 [L]

таким образом, вы можете изменить значение по умолчанию root вашего хостинга, используя файл .htaccess. надеюсь, это полезно для всех новичков в .htaccess

0 голосов
/ 17 января 2020

Попробуйте это с помощью общего хостинга, и это с помощью перенаправления ресурса на публикацию c dir

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

    #all request to public dir
    RewriteEngine on
    RewriteCond %{REQUEST_URI} !^public
    RewriteRule ^(.*)$ public/$1 [L]

    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>

Чтобы перенаправить весь запрос на публикацию c

 #all request to public dir
 RewriteEngine on
 RewriteCond %{REQUEST_URI} !^public
 RewriteRule ^(.*)$ public/$1 [L]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...