我們在前一篇介紹了架設LAMP server的方法,也介紹了Apache部分的module啟用與設定。我們在這個部分繼續介紹Apache相關的設定。(參考文獻: 實用 .htaccess 腳本合集 – 優化你的網站)
網址(URL)重寫,用到網址重寫目的是可以搭配PHP,用來設計進階的設計模式(design pattern)不可或缺的,比如說RESTful,MVC等。
- 我們要先確定module(模組)有沒有加載,所以一樣要開啟終端機輸入指令:
sudo a2enmod rewrite
,通常會顯示
Module rewrite already enabled
,如果沒有的話,就要與第一篇一樣,再多做一個動作,就是要再輸入
sudo service apache2 restart
- 第1步驟完成之後,我們接下來可以編輯.htaccess檔案了,加入這些如下:
RewriteEngine OnRewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [QSA,L]
- 加入上面的四行意思是,任何請求的URL(網址)都會經過index.php,要注意的是,.htaccess檔案僅限於目錄檔案下。
- 完成之後,所有請求都會經過index.php了,也因此更進一步的可以開發RESTful web service以及MVC設計模式了。
- 完成這4個步驟之後,我們還需要修改Apache2裡的設定檔,設定檔位於/etc/apache2/sites-available/000-default.conf ;若未參考第一系列,就需要做第6與第7步驟。
- 在最後</VirtualHost>之前加入:
<Directory "/var/www/html">; AllowOverride All </Directory>
- 這樣完成之後,輸入指令:
sudo service apache2 restart
將Apache2 重新啟動,網址重寫mod_rewrite 就可以使用了。
修改Apache預設監聽的埠號,WWW在Linux作業系統上預設的埠號通常是80,不過有的時候我們想要將埠號改成我們想要的數字時候該怎麼做呢?
- Apache2監聽埠號的設定是在
/etc/apache2/ports.conf
這個設定檔,把裡面的設定檔改掉,將Listen 80改成Listen 8080。
- 接著將Apache2停止並啟動服務(service),
sudo service apache2 stop sudo service apache2 start
- 打開瀏覽器就會發現要輸入http://localhost:8080才會看到網頁了。
- 不過,更改了埠號之後,之前設定檔
/etc/apache2/sites-available/000-default.conf
,是適用於埠號80,因此在8080埠號不適用。
- 要讓8080埠號下也可以用埠號80的/etc/apache2/sites-available/000-default.conf設定檔,我們只需要修改下面的設定檔。將設定檔裡的
<VirtualHost *:80>改成<VirtualHost *:8080>。改完之後,記得將Apache2服務重新啟動,輸入指令:sudo service apache2 restart
。