簡體   English   中英

Laravel在子目錄上的應用

[英]Laravel application on sub-directory

laravel應用程序似乎在服務器上的子目錄中存在路由問題。 本地計算機上運行的應用程序無法在實時服務器上子目錄中的臨時域上運行。 .htaccess似乎會有不同的結果。

這個問題幾乎與我要尋找的問題相同,但是當我有一些解決方法時,他沒有任何解決方案。

laravel public內部的.htaccess已被修改為:

<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>

該應用程序會將您重定向到主機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可以使用,但所有其他路由都重定向到同一主機gator 404頁面

您的意見和答案將不勝感激。

謝謝

步驟1.將所有email-client / public移到email-client /。 現在我們到了某個地方。 警告:不要忘記也復制.htaccess文件

第二步 在您喜歡的編輯器中打開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

要么

如果您不想做更多更改,請嘗試以下操作:

把它放在index.php文件中

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

希望為您工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM