Я только что закончил курс Udemy, и все отлично работает на localhost.
Для развертывания на Heroku я добавил дополнительный индексный файл. php в папку root, потому что Heroku не смог «увидеть» файл index. php в папке publi c. Поэтому я просто добавил include 'public/index.php';
в новый файл index. php. Пока что сайт загружается.
Однако ссылки в навигационной панели больше не работают. В приведенном ниже коде для панели навигации я использовал переменную URL ROOT в своем конфигурационном файле (это работает в localhost), но с тех пор, как я добавил индекс. php, все изменилось, и я получил 500 Internal Ошибка сервера при переходе по ссылкам.
<div class="collapse navbar-collapse" id="navbarsExampleDefault">
<!-- home and about page links on left of navbar -->
<ul class="navbar-nav mr-auto">
<li class="nav-item">
<a class="nav-link" href="<?php echo URLROOT; ?>">Home</a>
</li>
<li class="nav-item">
<a class="nav-link" href="<?php echo URLROOT; ?>/pages/about">About</a>
</li>
</ul>
<!-- register and login links on right of navbar -->
<!-- Contains php if to show/hide navbar options -->
<ul class="navbar-nav ml-auto">
<?php if (isset($_SESSION['user_id'])) : ?>
<li class="nav-item">
<a class="nav-link" href="#">Welcome, <?php echo $_SESSION['user_name']; ?></a>
</li>
<li class="nav-item">
<a class="nav-link" href="<?php echo URLROOT; ?>/users/logout">Logout</a>
</li>
<?php else : ?>
<li class="nav-item">
<a class="nav-link" href="<?php echo URLROOT; ?>/users/register">Register</a>
</li>
<li class="nav-item">
<a class="nav-link" href="<?php echo URLROOT; ?>/users/login">Login</a>
</li>
<?php endif; ?>
</ul>
</div>
Я попытался добавить /app
в начало пути к файлу после URL ROOT, так как это папка, в которой все хранится. Но все равно я получаю сообщение об ошибке.
Я также пытался как добавление / app в конец переменной URL ROOT в файле конфигурации, но это полностью нарушает работу.
файл конфигурации ...
<?php
// App root
define('APPROOT', dirname(dirname(__FILE__)));
// URL Root
define('URLROOT', 'http://localhost/php-share-posts');
//Site name
Как кривая, существует файл htaccess, который может сыграть в этом роль, останавливая чтение пути внутри папки приложения? Это предположение, скорее всего, неверно. Файл HTAccess ...
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ public/ [L]
RewriteRule (.*) public/$1 [L]
</IfModule>
Вот макет папки ... Папка root содержит 4 вещи ...
App folder (with main code)
Public folder (with index.php, css etc)
.htaccess file
.index.php (including the public inex.php file)
Что я делаю не так?