Приложение Laravel в подкаталоге - PullRequest
0 голосов
/ 27 апреля 2018

Приложение laravel, похоже, имеет проблему с маршрутами в подкаталоге на сервере. С запущенным приложением на локальном машина не работает на временном домене в подкаталоге на работающем сервере. Игра вокруг .htaccess, похоже, дает разные результаты.

Этот вопрос почти идентичен тому, что я искал, но у него нет решения, пока у меня есть работа.

.htaccess внутри уровня public были изменены на что-то вроде:

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

RewriteEngine On

RewriteBase /~timely/email-client  //<--base has been modified
# 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>

Приложение перенаправит вас на страницу host gator 404 .

Также я добавил .htaccess в основной каталог, который будет перенаправлять каждый запрос в каталог public.

<IfModule mod_rewrite.c>
  RewriteEngine on 
  RewriteRule ^(.*)$ public/$1 [L]
</IfModule>

После удаления home / main .htaccess просто работает для / маршрута: например,

http://gator4057.temp.domains/~timely/email-client/public будет работать, но все другие маршруты будут перенаправлены на тот же host gator 404 page .

Ваши комментарии и ответы будут оценены.

Спасибо

1 Ответ

0 голосов
/ 27 апреля 2018

Шаг 1. Переместить весь почтовый клиент / общедоступный в почтовый клиент /. Теперь мы куда-то добираемся. Предупреждение: не забудьте скопировать файл .htaccess тоже

Шаг 2 . Откройте email-client / index.php в вашем любимом редакторе и измените

$app = require __DIR__.'/../bootstrap/app.php';

до

$app = require __DIR__.'/../email-client/bootstrap/app.php';
or may be
$app = require __DIR__.'/email-client/bootstrap/app.php';

и изменить:

require __DIR__.'/../bootstrap/autoload.php'

до

require __DIR__.'/../laravel/bootstrap/autoload.php'
or may be
require __DIR__.'/laravel/bootstrap/autoload.php'

Команда запуска:

php artisan cache:clear  
php artisan config:clear
php artisan optimize

OR

Если вы не хотите делать больше изменений, попробуйте это:

Поместите это в файл index.php

$app->bind('path.public', function() {
    return __DIR__;
}

Надеюсь, что работа для вас.

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