Pages

Subscribe:

Ads 468x60px

Labels

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

2017年5月22日 星期一

如何透過.htaccess檔,來使用URL redirect/rewrite功能?

資料來源

.htaccess 重新導向/改寫    教學


章節 1   如何讓轉向所有到www.domain.com的連結,去domain.com?


問題描述
你的網站可以透過www.domain.com和domain.com這兩個域名來存取。由於Google會處罰這樣子的網站只因為它們有重複的內容,你得讓你的域名要嘛是domain.com或是www.domain.com 。然而,由於所有從外界連進來的連結並不歸你管,而且搜尋引擎也已經對你的網站的兩個域名建立索引了,你很難輕易地改變這件事。

解法
對於所有向錯誤URL要資料的http請求,做一個301轉址。

範例1 - 轉向所有不是www.domain.com 去www.domain.com
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.domain\.com$ [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301]

範例2 - 轉向所有不是domain.com 去domain.com
RewriteEngine On
RewriteCond %{HTTP_HOST} !^domain\.com$ [NC]
RewriteRule ^(.*)$ http://domain.com/$1 [L,R=301]

範例3 - 轉向所有domain.com 去www.domain.com
RewriteEngine On
RewriteCond %{HTTP_HOST} ^domain\.com$ [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301]


對於上述範例的解釋
讓我們先看範例1:
第一行指示apache啟動改寫模組
第二行RewriteCond %{HTTP_HOST} !www\.domain\.com$是比對指令。比對指令表示下一行的改寫指令只有當%{HTTP_HOST},即瀏覽器指向的域名,不是www.domain.com這個域名時,才會作用。其中!表示了「不是」的意思。[NC]表示忽略大小寫。^$這兩個符號中的文字,是正規表示式。所以.前面,必須加上逸脫字元。
第三行描述了改寫將如何改。其中^(.*)$這個正規表示式,比對了URL除了域名的後半部分。這條規則,表示將比對到的URL的後面部分,視為是$1,附加在domain.com/之後,作為新的URL。[L]表示這是最後一條改寫指令,所以一個http要求做了這次改寫之後,就會直接做為結果。而R=301是表示,網頁伺服器傳回一個301狀態碼給瀏覽器。


章節 2   如何將domain.com/重新導向成domain.com/index.php

問題描述:
你有個網站,域名是domain.com,而你打算讓所有進來的URL連結,凡是連到domain.com/的會跑到domain.com/index.php

解法:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^domain.com$
RewriteRule ^$ http://domain.com/index.php [L,R=301]

對於上述範例的解釋
第一行指示apache啟動改寫模組
第二行RewriteCond %{HTTP_HOST} ^domain\.com$是比對指令。比對指令表示下一行的改寫指令只有當%{HTTP_HOST},即瀏覽器指向的域名,等於domain.com這個域名時,才會作用。^$這兩個符號中的文字,是正規表示式。所以.前面,必須加上逸脫字元。
第三行描述了改寫將如何改。其中^$這個正規表示式,比對了URL除了域名的後半部分。這條規則,表示將比對到的URL的後面部分,在這個例子中,是空字串。而新的URL,將是http://domain.com/index.php。[L]表示這是最後一條改寫指令,所以一個http要求做了這次改寫之後,就會直接做為結果。而R=301是表示,網頁伺服器傳回一個301狀態碼給瀏覽器。

章節 3   如何透過.htaccess檔來移動域名下的資料


問題描述:
你有個網站,可以透過舊的域名olddomain.com來存取。而現在你有個新的域名,現在你希望這個網站可以透過newdomain.com來存取。然而,外界(整個網際網路)已經有有許多指向舊的域名的連結,你希望他們可以自動改連到新的域名。如此一來,舊域名的Google的搜尋排行也將可以由新域名來繼承。

解法:
對於每個到舊的域名要求資料的http要求,做301轉址

範例 - 從olddomain.com轉向到www.newdomain.com
RewriteEngine On
RewriteCond %{HTTP_HOST} !^newdomain.com$ [NC]
RewriteRule ^(.*)$ http://www.newdomain.com/$1 [L,R=301]


章節 4   加入結尾斜線到被要求的URL後方。


問題描述:
有時候,網址中的結尾斜線的表示的意思是資料夾,如果忘了加結尾斜線就會造成伺服器錯誤。舉個例子,如果http://domain.com/dir/對應到dir這個目錄。如果使用者打的網址是http://domain.com/dir時,因為忘了加結尾斜線,伺服器會以為要去找dir這個檔案,就會造成錯誤。

解法:
讓所有的沒有結尾斜線但是又是指向資料夾的URL,轉向成有結尾斜線的URL。

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.+[^/])$           $1/  [R]

對於上述範例的解釋
第一行指示apache啟動改寫模組
第二行RewriteCond %{REQUEST_FILENAME} -d是比對指令。意思是,只有當目標的檔名是一個資料夾時,才讓下方的改寫規則作用。
第三行描述了改寫規則將如何改寫。其中^(.+[^/])$這個正規表示式,比對了URL除了域名的後半部分。這條規則,表示將比對到的URL的後面部分,是一個最後沒有加結尾斜線的字串。改寫時,原來的檔名最後將被加上結尾斜線,作為新的URL。而R表示,網頁伺服器傳回一個301狀態碼給瀏覽器。


更多範例,請參考Apache官方文件

2015年4月15日 星期三

2014年8月22日 星期五

Google 搜尋

介紹如何搜尋的技巧

http://www.google.com/intl/zh-TW/insidesearch/

各種 Google 搜尋引擎的使用方式與技巧

POSTED ON 
這裡介紹各種 Google 搜尋引擎的使用方式與技巧,了解這些技巧可以讓你在搜尋時更有效率。

Google 搜尋引擎

Google 搜尋引擎是目前最普遍得搜尋引擎之一,不管是學生、上班族、研究人員等各行各業都會使用它,但是卻很少人注意到其實 Google 提供了很多的進階搜尋功能,如果善用這些功能可以讓搜尋動作更有效率,甚至可以有額外的收穫。

善用 Google 搜尋的籤頁

最簡單的搜尋技巧就是善用 Google 搜尋的籤頁,在搜尋結果的上方會有一些選項,包含「網頁」、「圖片」、「地圖」等等,使用這些籤頁可以幫助你更快找到想找的東西。

Google 搜尋籤頁

這個功能很簡單,應該大部分的人都有在使用它,如果你還沒注意到這個功能,那麼建議你可以使用看看。

使用引號搜尋

當你要搜尋某個特定關鍵字時,可以使用引號包起來,這可以使 Google 更明確知道你想要搜尋的東西,不會幫你做過多的猜想。

舉個實際的例子,若想搜尋「statistical programming」這個特定主題,一般如果直接在 Google 搜尋中直接輸入這個詞來搜尋,可能有一些只有「programming」或只有「statistical」字眼的網頁也會出現在搜尋結果中,而如果加入引號搜尋的話,Google 就會很精準的列出含有「statistical programming」的網頁。

Google 搜尋引擎

這個方式適用於很明確知道要搜尋的主題與關鍵字的狀況,而如果你不是很確定關鍵字是什麼的話,就不適合使用這樣的方式。

使用減號排除關鍵字

有時候不同的主題會有相同的關鍵字,而當我們使用這樣的關鍵字搜尋時,就會出現所有跟這個關鍵字相關的主題,但通常我們有興趣的只是其中一個而已,這種時候就可以利用減號(-)排除某些不要的主題。

例如以「Mustang」搜尋的時候,會同時找到 Ford 的汽車與房屋的資訊,如果你只想要看房屋的資訊,那麼你就可以嘗試使用「Mustang -cars」來排除一些汽車的搜尋結果,或是「Mustang -汽車 -car -ford」這樣加入更多排除條件的搜尋方式。

Google 搜尋引擎

使用 site: 搜尋特定網站

若要搜尋某個網站的內容時,可以使用 site: 來指定網站,例如「linux site:www.gtwang.org」就會從 www.gtwang.org 這個網站中搜尋含有 linux 這個關鍵字的內容。

Google 搜尋引擎

使用 link: 找尋含有特定連結的網頁

Google 除了可以直接找尋網頁之外,也可以使用 link: 來尋找含有特定連結的網頁。例如若要找尋有連結至 New York Times 網站的網頁,就可以使用「link:nytimes.com」。

Google 搜尋引擎

使用萬用字元(Wildcard)搜尋

萬用字元(*)是 Google 搜尋最好用的功能之一,當你不是很確定關鍵字的時候,那些不確定的方就可以使用萬用字元,這些萬用字元的部份會自動被 Google 用其他的字取代。

一般在搜尋音樂歌詞的時候,如果你聽到一首歌的某一段,但是又不是記的很清楚的時候,就可以將那些記不清楚的部份用萬用字元取代,這樣就可以很容易找到你要的歌詞網頁了。

假設我們要查的一句歌詞是 Come together right now over me,但是灰色的部份我們忘記了,這時候就可以使用「"Come * right now * me"」來查詢。

Google 搜尋引擎

使用 related: 找尋相關網站

如果想要找尋跟某個特定網站相類似的網站,可以使用「related:」這個功能。

如果你喜歡瀏覽某一類型的網站,例如 Engadget 這類的科技新聞網站,而對於那些常常看的網站也看膩了,這時候就可以使用「related:www.engadget.com」靠 Google 找尋一些其他類似 Engadget 的網站,這樣的搜尋方式不會列出該網站的資訊,但是可以找出網路上許多相似的網站,你可以利用這個好用的功能發掘一些你喜歡的網站。

Google 搜尋引擎

使用 Google 做數學運算

Google 除了用來搜尋之外,也可以當作計算機來使用,例如查詢「5 * 5 + 8」的話,在搜尋結果上方就會出現一個計算機,顯示這個算式的答案。

Google 搜尋引擎計算機

而如果輸入一般的數學函數,Google 就會幫你畫出來,例如「sin(x) + x*cos(x)」:

用 Google 搜尋引擎畫數學函數圖形

甚至三維的函數也可以靠 Google 用 WebGL 畫出來,例如「sin(x/3) * cos(y/3)」:

用 Google 搜尋引擎畫三維數學函數圖形

使用 OR 同時搜尋多個關鍵字

如果想要同時搜尋多個關鍵字,可以使用「OR」這個搜尋運算子,如果不使用 OR 的話,通常在搜尋結果中只會顯示包含所有字詞的網頁。

例如「"world cup location 2014" OR "world cup location 2018"」就會列出 2014 或 2018 年世界杯的舉辦地點。

Google 搜尋引擎的 OR 運算子

搜尋特定數字範圍

以兩個英文句點(..)分隔數字(中間不要有空白),即可查看包含該範圍內數字的搜尋結果,例如日期、價格、度量衡等。例如「camera $50..$100」就會搜尋 50 美金到 100 美金之間的相機。

使用 Google 搜尋特定數字範圍

除了指定區間之外,亦可僅使用一個數字搭配兩個英文句點來指定上限或下限,例如「daytona 500 winners ..2000

別把事情想得太複雜

Google 其實很聰明,有時候你不用太花腦筋去想該怎麼搜尋,如果你想要搜尋附近的加油站,可以直接輸入「附近 加油站」去找,Google 會定位出你所在的位置,然後根據你的位置給你附近的加油站資訊。

Google 搜尋引擎

漸進式搜尋

有時候 Google 可能沒辦法一次就把你想要的答案給你,若是遇到這樣的狀況,可以試試看使用漸進式的搜尋方式,一開始先用最簡單的關鍵字搜尋,然後慢慢的逐漸增加,例如:
  1. 第一次:「面試
  2. 第二次:「準備面試
  3. 第三次:「如何準備面試
這樣可以逐漸縮小搜尋結果的範圍,不要一次就使用最多的關鍵字來搜尋,如果一次就使用最詳盡的關鍵字,就有可能就會遺漏掉某些搜尋結果,因為網路上有非常多的網站,而每個網站所用的關鍵字可能都不同,使用較少的關鍵字有時候也可能會找到一些你想要的網站。

以網站會使用的語言搜尋

有時候大家會使用一些口語的字詞來搜尋,但是通常一般的網站用語會跟一般的口語不盡相同,這樣會造成搜尋的結果不如預期,這時候就可以思考一般網站的用語是哪些,改用這些網站會用的語言來搜尋。

例如手機故障時,若想要找店家維修你可能會查詢「手機故障」,但這個用語在一般手機維修網站的出現頻率可能不高,這樣就會比較不容易找到維修的資訊,但是直接改用「手機維修」就會有比較好的搜尋結果,甚至 Google 還會很聰明的幫你找到附近的維修店家。

使用精簡扼要的關鍵字

Google 會依照你給他的所有關鍵字來比對,如果你給他太多關鍵字時,搜尋結果就會被限縮到在比較小的範圍內,這樣有時候反而會找不到你要的網頁,例如若使用「到底這附近的加油站在哪裡阿」,可能反而找不到任何有用的資訊,直接用「附近的加油站」或是「附近 加油站」就可以了。

單字拼錯其實無所謂

Google 搜尋引擎很聰明,如果你在輸入關鍵字時,把單字拼錯了,它通常還是有辦法找到你要的結果,例如入想搜尋 「statistical programming」,但是卻輸入成「statistial progrmming」,這時候 Google 就會自動修正錯誤的單字,然後顯示正確的結果。

Google 搜尋引擎 單字拼錯其實無所謂

嘗試不同的敘述用語

很多時候同一件事情會有許多不同的敘述方式,當你一直找不到你要的資訊時,可以嘗試換一種敘述方式來搜尋,例如當你在安裝 Ubuntu 的驅動程式,而老是裝不起來時,你可能會搜尋「How to install drivers in Ubuntu」,如果找不到你要的資訊,你就可以再嘗試看看「Troubleshoot driver problems Ubuntu」。

這個例子可能不是很恰當,但原則上就是當你找不到你要的東西的時候,就可以換一種敘述方式,可能會有所幫助。

使用 filetype: 找尋特定檔案類型

Google 可以使用 filetype: 指定要搜尋的檔案類型,這個功能也是常常被大家所遺忘的,有時候你在網路上看過一些 PDF 檔或是投影片,而過了一段時間後,又再度需要這些資料時,就可以使用這樣的方式來搜尋。

例如想找尋 vim 相關的 PDF 檔,就可以使用「vim filetype:pdf」來搜尋。

Google 搜尋引擎 指定檔案類型

使用 Google 做單位換算

Google 也可以用來做一些常用的單位換算,例如若要查十塊美金折合多少台幣,就可以使用「10 usd to twd」,若不習慣英文的話,也可以使用中文「10 美金 to 台幣」。

使用 Google 做單位換算

除了貨幣之外,Google 也可以進行長度的單位換算,例如若要將 10 英里換算為公里,則使用「10 mile to km」。

使用 Google 追蹤包裹

Google 整合一些國際大型的快遞公司網站,當你直接在 Google 搜尋中輸入 UPS、USPS 或 Fedex 的包裹追蹤碼,他就會直接顯示你的包裹資訊,這可以讓你不用再自己連上該快遞公司的網站去查詢,會方便許多。

參考資料:lifehackEducational Technology and Mobile Learning

善用GOOGLE -- 從入門到精通

(DOC 簡體字版由網站下載,原作者不詳)
修正版:方煒 台大生機系


2013年10月14日 星期一

11項你可能沒聽過的Google服務

數位時代網站|撰文者:許凱玲編譯發表日期:2013-03-21
以網路搜尋和Android行動作業系統聞名的Google,旗下還有許多網路產品和服務,提供大眾更方便的生活,不過其中有些可能你連聽都沒聽過。
1. Google Mars顧名思義就是讓你可以觀看火星,這是Google和美國太空總署、亞利桑那州立大學共同合作推出的火星地圖。
2. Google Scholar提供學術性文獻搜尋,來源相當廣泛,從學術出版、期刊、大學及各種學術單位報告、論文、書籍、摘要文章等,儘管散落各處,但透過Google學術搜尋服務就可以一次搜尋。
3. Google Art Project這座超級豐富的線上博物館,蒐羅了將近4萬件藝術作品,從聖經中的《以賽亞書卷》(The Great Isaiah Scroll)到梵谷《星空》(The Starry Night),還有故宮博物院的翠玉白菜,全都在此。
4. Google Transliterate這款輸入工具提供了超過70種語言的虛擬鍵盤、超過20種不同指令碼的完整輸入法編輯器或音譯工具,讓你出門在外,使用不是自己的電腦,再也不會遇到卻找不到輸入法的窘境。
5. Build with Chrome這是Google澳洲和樂高合作推出的計畫,可用Chrome瀏覽器堆疊樂高積木。
6. Google Think為廣告人員量身打造的網站,提供一些行銷靈感,不過最終目的當然是希望廣告主可將預算投放在Google網路廣告平台。
7. Power Searching with GoogleGoogle為了要增進網友的搜尋能力,特別請搜尋專家在網路上開班授課,不藏私將最精準的搜尋技巧告訴大家。
8. Schemer這款社群App讓你和朋友分享即將到來的活動、推薦的電影等。
9. Google Sound Search和Shazam類似的產品,可以辨識歌曲。
10. Google Moderator中文稱作「Google好問」,讓網友幫你解決問題、給你建議。
11. encrypted.google.com加密搜尋服務,最適合不想要將自己的資訊傳送給廣告主的網友,來到這個網址之下進行搜尋就對了。使用安全資料傳輸層(Secure Sockets Layer)技術,也是銀行採用的安全技術。

[Google服務]關閉Chrome新版的「新分頁」

前幾天開啟Chrome時,發現首頁介面好像不大一樣,原以為只是一般的更新,不過使用起來還真的給它有點不大方便。原來這一波更新,是將原本的「常用網頁」分頁直接置入到首頁中,而「擴充功能」分頁卻找不到了,原來是跑到常用書籤列裡去了,以致於我們要使用時,得「多按一下」書籤列上的「應用程式」按鈕,別懷疑!鼻涕仔已經被大神訓練到「連多點一下」都覺得麻煩的大懶人了!XD!
因此,鼻涕一直很想關閉這個「新」功能,不過實際上設定起來還真的很簡單,如果你跟鼻涕一樣,是一個懶人,也可以試著將這麻煩的新功能關閉喔!
Chrome新版首頁

操作說明

  1. 複製「chrome://flags/」,在Chrome瀏覽器貼上,直接找到「啟用Instant Extended API」項目,將其關閉(選擇「已停用」),並且重新啟動Chrome即可!
    停用Instant Extended API
  2. 重啟Chrome之後,就恢復到原本的Web App頁面囉!
    原本的Web App頁面
  3. 不過鼻涕在公司電腦設定好之後,這個設定似乎是無法雲端同步的唷!所以家裡的電腦還是得再設定一次!

2013年5月23日 星期四

Google AdMob 廣告 Android 版橫幅廣告 XML



總覽

AdView 除了可以用 Java 撰寫外,只使用 XML 也可以達到相同目的,方法如下:
  • 將 SDK 導入應用程式
  • 在 res/layout/main.xml 中定義 com.google.ads.AdView,並用 ads:loadAdOnCreate 屬性指定它立即載入廣告。
  • 您也可以不要強制要求 AdView 立即載入廣告,然後改在執行期間查詢 AdView 這項資源,並要求它請求廣告。

定義 com.google.ads.AdView

導入廣告最簡單的方式是定義 AdView,方法和定義 res/layout/main.xml 的任何部分一樣:

xml version="1.0" encoding="utf-8"?>
 xmlns:android="http://schemas.android.com/apk/res/android"
              xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
              android:orientation="vertical"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent">
   android:id="@+id/adView"
                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
                         ads:adUnitId="MY_AD_UNIT_ID"
                         ads:adSize="BANNER"
                         ads:testDevices="TEST_EMULATOR, TEST_DEVICE_ID"
                         ads:loadAdOnCreate="true"/>
在這裡,您也必須用 AdMob 發佈商編號來取代 MY_AD_UNIT_ID,並在 ads:testDevices 屬性中加入自己的裝置編號,才能在裝置上取得測試廣告。請注意,這裡在指定 adUnitId 和 adSize 時加入了 ads 命名空間參照。在 Android 版面引擎建立 AdView 後,這段程式碼就會立即嘗試載入廣告。

查詢及載入

如果您想要控制在應用程式中用來載入廣告的 AdRequest,可以從上述程式碼中移除 ads:loadAdOnCreate="true" 這一行,然後改為透過 findViewById 查詢 AdView 這項資源,並指示它執行 loadAd
import com.google.ads.*;
public class BannerExample extends Activity {
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    // 查詢 AdView 這項資源,並載入請求。
    AdView adView = (AdView)this.findViewById(R.id.adView);
    adView.loadAd(new AdRequest());
  }
}
您也可以在這裡下載包含此程式碼的範例專案。






https://developers.google.com/mobile-ads-sdk/docs/android/banner_xml?hl=zh-tw