顯示具有 apache 標籤的文章。 顯示所有文章
顯示具有 apache 標籤的文章。 顯示所有文章

2016年3月10日 星期四

Apache 開啟支援 SSI 功能

幫忙起一個我完全不熟悉的 Web Site 在 Apache 上,副檔名是 shtml,而且 shtml 裡面夾帶很多 <!--#include file="/XXX/XXX" --> 的這種格式,而我去 google 這種 include 的方式要讓 Apache 讀得懂,要開啟 SSI (Server Side Includes) 以及開啟 Include 。

主要的做法,請參考 http://httpd.apache.org/docs/current/howto/ssi.html,其實寫得很清楚~

而且, <!--#include file="" --> 好像不是 apache server 在看的格式,好像是 IIS 系列的 server,我後來發現 apache 根本看不懂 include file 這個詞,還要把 file 都換成 virtual 這個單字才行,否則爬出來會得到 [an error occurred while processing this directive] 這樣的錯誤訊息。 (如果有人知道怎麼讓 apache 也看得懂 file 這個詞來做 include 請跟我說 Orz 謝謝你!但前提是不改動 include 這個單字)

首先先讓你的 apache 啟用 Include, rewrite 的功能(rewrite 要不要我忘記了.)

1. apache 要開啟 include 的功能
a2enmod include

2. apache 要開啟 rewrite 的功能
a2enmod rewrite
記得重啟 apache。


接著 apache 修改的部分,修改 httpd.conf,在 Options 的地方加上 Includes。像是:
<Directory /var/www/>
        Options Indexes FollowSymLinks Includes
        AllowOverride All
        Require all granted
</Directory>
或是你只把 AllowOverride All 打開,然後在專案目錄下透過 .htaccess 來複寫也可以。如果你是想用 .htaccess:

.htaccess
Options Includes
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
AddOutputFilters 加入 .shtml 表示只要付檔名是 shtml 就先經過 Inludes 的過濾,假如你的  <!--#include virtual ="" -->  是寫在副檔名是 php 的檔案情況下,則 AddOutputFilter INCLUDES .php .shtml,只要再加上 .php 就行。


就這樣,我 try 了好久,發現雷踩在根本忘記 a2enmod include 開啟 apache  的 include 模組。當初還以為 php -S 的方式就可以讀這種 include 的方式... 結果路要繞道用 apache 的方式去看, IIS 我又不熟 ... 不過好險,至少可以看到畫面了 :P

2015年2月25日 星期三

各種 htaccess 的寫法集合

.htaccess Snippets
網址: https://github.com/phanan/htaccess

因為太實用了所以一定要發一篇記錄一下,因為真的不會沒事去研究怎麼寫 htaccess...。

2015年1月23日 星期五

不要被 builtwith / Wappalyzer 知道你是用 Laravel

這標題是下得有點好笑,可是確實是我的用意。就是不想被知道我是用 PHP,也不想被知道我是用 Laravel,只是好奇做個測試。

首先~我是用 ubuntu,裝的是 apache。

編輯  vi /etc/apache2/apache2.conf,將這些設定加入:

ServerSignature Off (預設本來就 Off)
ServerTokens Prod
Header unset Server
Header unset X-Powered-By

(如果沒有啟用 apache 的 header 的話,要下 a2enmod headers,然後再重啟 apache2,service apache2 restart)

ㄜ ...當初改完的時候沒有沒有立即看到效果,可是幾天後回去看就好了....


參考:
How to install apache module mod_headers in ubuntu?
How to hide Laravel from Wappalyzer plugin



2013年5月5日 星期日

在apache啟動gzip功能

在apache啟動gzip壓縮的功能對網站的效能有蠻大的幫助。
今天我找到了幾個如何在apache設定gzip的文章
(我的作業是系統是windows下架設的apache)
步驟並沒有很複雜,就是做個設定
效果還不差呢!
我用page speed比較有沒有裝gzip的前後差異後,還真的有不少的落差(不過還是依個案而有不同)


2013年4月29日 星期一

在apache關閉X-Powered-By的方法

為了在Response Headers避免暴露了自己的php版本
像這樣:

所以要去做些設定

首先打開php.ini
將expose_php=On
改成expose_php=Off


然後重啟apache,完成!

有興趣可以參考:


2013年1月28日 星期一

[appserv]設定自己的apache server的Not Found 頁面


我想大家對這個畫面應該很熟悉,這就是常常看到的Not Found頁面,
最近我用自己的電腦當server學做後台,輸錯網址就是這個錯誤,突然想到網路上很多人自製好看Not Found page, 所以我也來看看怎麼設定自己的not found頁面。

因為我的apache是用appserv去安裝的,所以設定上可能不能符合一般大眾。
這次要設定的是server根目錄的404 not found page,如果你是要針對各個資料夾(或說自己server底下各個網站的not found,可能要搜尋一下怎麼設定.htaccess檔案,這個我還沒做)

所以呢,首先先設定httpd.conf裡面的404 page的頁面

step 1 :
若跟我一樣是安裝在C槽,請找到這個路徑的httpd.conf這個檔案
C:\AppServ\Apache2.2\conf\httpd.conf,接著請以編輯器打開



step 2 :
找到512行(或者搜尋 ErrorDocument)
如果你移除註解了,那就會將missing.html的頁面當作404的頁面
(你也可以自製頁面,不一定檔名也是要missing.html)

所以step3就是移除這個註解(移除#號),然後到www/目錄底下建立missing.html



step 3 :
移除註解後存檔。


step 4 :
在www/目錄底下建立missing.html(是要手動建立)。


step 5 :
編輯missing.html檔案,你可以美化它...




step 6 :
然後,重點,重啟apache


step7:

 在瀏覽器輸入一個不存在的網頁畫面,來看看這個not found畫面有無誤
(裡面文字是我亂打測試用)


美化後。。。。(很沒意義的美化XD 其實使用者並不會知道甚麼是404 page><)
應該要做一些說明或是解釋/轉頁等功能的畫面比較好一點XD

接下來可以好好美化自己的not found page

網路上有很多參考:

404页面最佳实践

30多个很酷的404错误页面设计




2013年1月22日 星期二

apache設定-網站目錄不要被看到

恩,這標題還真難下耶,其實我沒有很懂apache,如果有錯敬請拍磚(<<-是這樣用嘛!?xd
簡單來講呢,就是說,如果網站的目錄裡,沒有index.html/.htm/或.php
像這樣的目錄會很麻煩的就是,當輸入那個網址,目錄裡的東西會被一覽無疑。
說方便也是有點方便,唯一不好的就是安全性,
所以要靠一些設定使目錄底下的東西不要被看見。


這是我的apache的某個目錄:
一進來就被發現我有兩張png圖檔,還可以點。..
apache裝好之後預設就是可以看到目錄底下的東西,所以要自己設定...

修改apache目錄底下httpd.conf這支檔案(我用的是XAMPP)
(\xampp\apache\conf\httpd.conf)約略223行,或關鍵字尋找indexes。
(Hint:看你裝的是哪種apache,或是放在什麼作業系統,可能要找一下httpd.conf這個檔案)

找到Options Indexes FollowSymLinks Includes ExecCGI
將這行註解 #Options Indexes FollowSymLinks Includes ExecCGI
或者不用註解,移除Indexes字樣。
重啟apache。


重啟後再回到那個目錄看一下,就會變成access forbidden了
完成 !
以前我一直覺得apache就一個server而以,沒想到有這麼多設定可以研究!
有時間的話也可以看看HTTP403的錯誤原因是什麼。

Vue multiselect set autofocus and tinymce set autofocus

要在畫面一進來 focus multiselect 的方式: 參考: https://jsfiddle.net/shentao/mnphdt2g/ 主要就是在 multiselect 的 tag 加上 ref (例如: my_multiselect), 另外在 mounted...