亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

PHP Heroku - 額外的 index.php 文件導致路由問題

PHP Heroku - 額外的 index.php 文件導致路由問題

PHP
泛舟湖上清波郎朗 2022-07-16 16:19:39
我剛剛完成了 Udemy 課程,在 localhost 上一切正常。為了在 Heroku 上部署,我在根文件夾中添加了一個額外的 index.php 文件,因為 Heroku 無法“看到”公共文件夾中的 index.php 文件。所以我只是簡單地添加include 'public/index.php';到新的 index.php 文件中。到目前為止,該站點現在已加載。但是,導航欄中的鏈接不再起作用。您將在下面的導航欄代碼中看到,我在我的配置文件中使用了變量 URLROOT(這在 localhost 中有效),但是由于我添加了 index.php,事情發生了變化,并且在單擊時出現 500 Internal Server Error鏈接。    <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在 URLROOT 之后添加到文件路徑的前面,因為這是存儲所有內容的文件夾。但我仍然得到錯誤。我還嘗試將 /app 添加到配置文件中 URLROOT 變量的末尾,但這完全破壞了事情。配置文件...<?php// App root define('APPROOT', dirname(dirname(__FILE__)));// URL Rootdefine('URLROOT', 'http://localhost/php-share-posts');//Site name作為一個曲線球,有一個 htaccess 文件可能在其中發揮作用,停止讀取 app 文件夾內的路徑?這是一個猜測,很可能是錯誤的。HTAccess 文件...<IfModule mod_rewrite.c>  RewriteEngine on  RewriteRule ^$ public/ [L]  RewriteRule (.*) public/$1 [L]</IfModule>我究竟做錯了什么?
查看完整描述

2 回答

?
海綿寶寶撒

TA貢獻1809條經驗 獲得超8個贊

您不應該使用重寫或包含來執行此操作。

您可以告訴 Apache 或 nginx 指向 Procfile 中的公用文件夾。

對于 Apache,web: vendor/bin/heroku-php-apache2 public/可以解決問題。有關更多詳細信息,請參閱https://devcenter.heroku.com/articles/custom-php-settings#setting-the-document-root。


查看完整回答
反對 回復 2022-07-16
?
斯蒂芬大帝

TA貢獻1827條經驗 獲得超8個贊

問題是一個 htaccess 文件,它重定向到我在開發階段使用的完整文件路徑。上傳到 Heroku 時,只需將其定向到公用文件夾即可。問題解決了。



查看完整回答
反對 回復 2022-07-16
  • 2 回答
  • 0 關注
  • 134 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號