2019年1月27日 星期日

從頭開始,一步一步架起低成本網站【第4章~強制使用https網址】

URL Rewrite機制

將所有http路徑導向到https路徑

首先啟用apache2中的rewrite模組

a2enmod rewrite


接著在網站的根目錄下新增一個.htaccess檔案,並增加以下內容

#避免直接存取目錄
Options -Indexes
#rewrite
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{SERVER_NAME}/$1 [R,L]












存檔後檢查讀取權限

chmod 755 .htaccess


最後測試用http輸入網址後是否有正常導向到https

2018年7月8日 星期日

從頭開始,一步一步架起低成本網站【第3章~安裝FTP站台並啟用SSL加密連線供上傳程式檔案】



前面已經安裝了web和db,接下來如果購買VPS主機的話就需要使用FTP去上傳你所撰寫的程式

【安裝VSFTPD】

sudo apt-get install vsftpd

【檢查VSFTPD是否已安裝】

netstat -tul | grep ftp
OR
service vsftpd status


2018年6月24日 星期日

從頭開始,一步一步架起低成本網站【第2章~架設OpenSource資料庫平台Mariadb及UTF8】


MariaDB資料庫管理系統是MySQL的一個分支,主要由開源社群在維護,採用GPL授權授權。開發這個分支的原因之一是:甲骨文公司收購了MySQL後,有將MySQL閉源的潛在風險,因此社群採用分支的方式來避開這個風險

安裝Mariadb


sudo apt-get install mariadb-server




2018年6月17日 星期日

從頭開始,一步一步架起低成本網站【第1章~Ubuntu上架設.net平台web主機】


首先不管是要自架主機或是買VPS,總之要先有一台Linux主機


我是預計寫C#建立站台,所以採用Linux + Mono + Apache2 + Mariadb這個幾乎零成本的建置環境,接下來的案例都會以mail.example.com這個主機名稱為例子


2018年6月10日 星期日

從頭開始,一步一步架起低成本網站【第0章】


前言:

預計將自已建置各式主機的步驟作一個完整記錄!


環境:

Server :

Lincode Ubuntu 16.04 amd64


DB Server:

Mariadb 10.2.14

WebSite :

Mono 5.10.1.47


Client:

Windows 10 amd64





2017年10月10日 星期二

mono在.net4.0中checkboxlist狀態無法正常呈現的解決方式

如果有使用checkboxlist在mono中會發現一是裡面的值無法正常儲存,可參考以下解法:


解法1:

在web.config中的<system.web>區塊中加上此行

<pages controlRenderingCompatibilityVersion="3.5" />


註.但有可能影響到其他有用到4.0以上的元件呈現,例如:MenuItem



解法2:

在Page_PreRender中加上以下函式


protected void Page_PreRender(object sender, EventArgs e)
        {
            setCheckBoxStates([你的checkboxlist名稱]);
        }



private void setCheckBoxStates(CheckBoxList cbl)
        {
            if (IsPostBack)
            {
                string cblFormID = cbl.ClientID.Replace("_", "$");
                int i = 0;
                foreach (var item in cbl.Items)
                {
                    string itemSelected = Request.Form[cblFormID + "$" + i];
                    if (itemSelected != null && itemSelected != String.Empty)
                        ((ListItem)item).Selected = true;
                    i++;
                }
            }
        }


這只能保持你的選取狀態是正常的,但選取的值如果用一般寫法仍會無法儲存,所以同理改寫成以下方式


 string calids = "";
                string cblFormID = [你的checkboxlist名稱].ClientID.Replace("_", "$");
                int i = 0;
                foreach (var item in [你的checkboxlist名稱].Items)
                {
                    string itemSelected = Request.Form[cblFormID + "$" + i];
                    if (itemSelected != null && itemSelected != String.Empty)
                        if (calids == "")
                        {
                            calids = itemSelected;
                        }
                        else
                        {
                            calids += "," + itemSelected;
                        }
                    i++;
                }


註.checkboxlist的命名規則不可包含有「_」底線,不然會一樣被過濾成$導致無法正常運作


熱門文章