透過 Server Side Include 來控制網頁內容開關

最近在工作上遇到一個需求,某一靜態頁面可以透過不同的 Domain 連過去,但某一區塊的內容在特定Domain 下,不允許使用者查看,其實這也不是多難的問題,有很多解決方式,如:
– 透過 Google Tag Manager 動態插入 Javascript 來判斷,把某區塊直接隱藏
– – 優點:對原來頁面不需要做任何修改,不過還是要另外加入 GTM 的程式碼
– – 缺點:透過檢視原始網頁,還是會看到不該看到的內容

  • 若您是使用 Apache 可以使用 Server Side Include 的模式,加上 if 條件式判斷,官方說明文件:連結
    • 優點:檢視原始網頁,什麼都不會出現了,真的很乾淨
    • 缺點:您得在原來的網頁上,插入相關的 if 條件

我這次選擇後面的做法,首先我測試我是否能抓到 Domain 的資料,我在頁面上加入:
<!--#echo var="SERVER_NAME" -->

再去重新整網頁,他會顯示出你訪問的 Domain 內容,沒問題後,我在我想要限制的區塊中加入:

<!--#if expr="%{SERVER_NAME} = 'www.tripndev.com'" -->
Hi,您正在訪問 www.tripndev.com
<!--#endif -->

下列二個連結,都有提供的可以使用的變數說明。
http://httpd.apache.org/docs/current/mod/mod_include.html#includevars
https://httpd.apache.org/docs/2.4/expr.html

補充說明:
Nginx 的 SSI 官方說明:https://goo.gl/D6pwq8
Nginx 的變數:https://goo.gl/zfU8gw

透過這樣的小調整就能解決使用者的問題,也算是功德一件。

Related Posts

發佈留言