http://blog.tonycube.com/2015/01/laravel-23-public.html
假設網站目錄為 blog,完整路徑為 /var/www/blog ;再假設主網域是 myblog.com ,要將 laravel 網站以 www 加主網域的方式呈現,可以使用方法 1 或方法 2 達成(要設定 DNS A 主機為 www)。
方法 3 會做成 www.myblog.com/blog ,如果要變成 blog.myblog.com 並不需要使用方法 3,只要設定 DNS 的 CNAME 為 blog,再使用方法 2 去設定即可。
在 Laravel 中,主要對外的目錄為 public,所以這裡的設定方法,全都離不開將連入的網址指向 public 目錄的動作。
方法1 - 單一網站
你的 Apache 伺服器只有一個網站,不存在其他虛擬網站。
在 Apache 的設定檔 httpd.conf 中,將 DocumentRoot 指定到 /var/www/blog/public,例如:
DocumentRoot /var/www/blog/public
*需設定 DNS 的 A 主機為 www,這樣你就會有 www.myblog.com 的網站。
方法2 - 多個虛擬網站
將 <VirtualHost> 的 DocumentRoot 指定到 /var/www/blog/public,例如:
<VirtualHost *:80>
DocumentRoot /var/www/blog/public
ServerName www.myblog.com
</VirtualHost>
你可以把 ServerName 改成 blog.myblog.com,但是必須在 DNS 中新增名稱 "blog" 的 CNAME。
*需設定 DNS 的 A 主機為 www。或 CNAME 為 blog。
方法3 - 移動 public 目錄
*無需設定DNS。
因為在 laravel 框架中, public 目錄是網站的顯示根目錄,所以只要將它移動到網站根目錄,就可以直接顯示,但是有些必要的檔案要修改。
1. 移動 public 到網站根目錄
將 blog 下的 public 移動到網站根目錄,等於和 blog 同一目錄。
2. 目錄改名
將原本的 blog 改為其他名稱,例如:blog-web。名稱自訂,這裡只會影響我們的設定檔,與使用者無關。
接著將原本的 public 改為 blog,這裡就是要讓使用者開啟的網站目錄。
結果原本的:
(1) /var/www/blog
(2) /var/www/blog/public
變成
(1) /var/www/blog-web
(2) /var/www/blog
3. 修改設定
修改原本的 public (現改名為 blog) 目錄下的 index.php
原本
require __DIR__.'/../bootstrap/autoload.php';
$app = require_once __DIR__.'/../bootstrap/start.php';
改為
require __DIR__.'/../blog-web/bootstrap/autoload.php';
$app = require_once __DIR__.'/../blog-web/bootstrap/start.php';
接著修改 blog-web 目錄下的 bootstrap/paths.php
原本
'public' => __DIR__.'/../public',
改為
'public' => __DIR__.'/../../blog',
現在,就可以使用 localhost/blog 或 www.myblog.com/blog 來開啟網站,結尾不需要再加 public 了。
移除 public 結尾
前往
- Software
- ↳ CodeCharge Studio
- ↳ CodeCharge
- ↳ DemoCharge
- ↳ SuperPDF
- ↳ 551einv
- ↳ E3進銷存
- 程式語言
- ↳ PHP
- ↳ CodeLobster PHP Edition
- ↳ Yii
- ↳ CodeIgniter
- ↳ Phalcon
- ↳ Symfony
- ↳ FuelPHP
- ↳ Zend Framework 2
- ↳ laravel
- ↳ WordPress
- ↳ ASP.NET/C#
- ↳ ASP/VBScript
- ↳ JSP
- ↳ Java Servlets
- ↳ ColdFusion
- ↳ Perl
- ↳ Java Script
- ↳ jQuery
- ↳ HTML + CSS
- ↳ jQuery
- ↳ nodejs
- ↳ VB6
- ↳ Git
- ↳ App Inventor 2
- ↳ bash
- ↳ C++/ VC/ OpenCV
- ↳ OpenCV
- ↳ go
- ↳ cordova
- ↳ python
- ↳ Xamarin
- ↳ Assembly
- 資料庫
- ↳ MySQL
- ↳ PostgreSQL
- ↳ ORACLE
- ↳ Access
- ↳ SQL Server
- ↳ SQLite
- ↳ MariaDB
- ↳ Mongodb
- 作業系統
- ↳ Linux
- ↳ Ubuntu
- ↳ CentOS
- ↳ Mint
- ↳ Mandriva
- ↳ Debian
- ↳ Red Hat Enterprise Linux
- ↳ Oracle Linux
- ↳ Fedora
- ↳ Kali Linux
- ↳ OpenSUSE
- ↳ Elementary OS
- ↳ Microsoft
- ↳ Server 2008 R2
- ↳ Server 2012 R2
- ↳ Server 2012
- ↳ 8
- ↳ 10
- ↳ System Center 2016
- ↳ NOVELL
- ↳ FreeBSD
- ↳ VMware
- ↳ VirtualBox
- ↳ Mac OS X
- ↳ Solaris
- ↳ iOS
- ↳ Android
- ↳ Cloud
- ↳ OpenStack
- ↳ Docker
- ↳ Proxmox VE
- ↳ CloudReady
- ↳ chrome
- 網頁伺服器
- ↳ apache
- ↳ tomcat
- ↳ nginx
- ↳ IIS
- ↳ JBoss
- ↳ weblogic
- ↳ WebHosting
- 硬體
- ↳ 硬體及週邊
- ↳ RouterOS
- ↳ LEGO NXT
- ↳ Arduino
- ↳ MSP430
- ↳ Raspberry Pi
- ↳ OpenERP
- ↳ Storage
- ↳ Server
- ↳ Brocade
- ↳ MODELS
- ↳ FortiGate
- 軟體
- ↳ sublime
- ↳ LibreNMS