最近明月得谷歌 AdSense 賬戶后臺(tái)總是顯示一條“收益受損風(fēng)險(xiǎn) - 您需要修正一些 ads.txt file 問題,以免收入嚴(yán)重受損,?!钡奶崾疽呀?jīng)好多天了,這兩天抽空解決了一下,,期間在跟站長(zhǎng)交流的時(shí)候發(fā)現(xiàn)不少站長(zhǎng)都有一個(gè)關(guān)于域名解析得誤區(qū),,給站點(diǎn)帶來了很大得安全隱患,正好借助于這個(gè) ads.txt 問題給大家講解一番,。
首先,,谷歌 AdSense 出現(xiàn)“收益受損風(fēng)險(xiǎn) - 您需要修正一些 ads.txt file 問題,以免收入嚴(yán)重受損,?!边@個(gè)提示的原因其實(shí)很簡(jiǎn)單,就是谷歌 AdSense 的爬蟲無法抓取到站點(diǎn)根目錄下得 ads.txt 文件了,,至于說這個(gè) ads.txt 文件是干嘛的,,有興趣得站長(zhǎng)可以參考【免 AdSense 廣告收益受損的 ads.txt 文件】一文了解即可。那么就有站長(zhǎng)提出自己網(wǎng)站根目錄下明明有這個(gè) ads.txt 文件呀,?為啥谷歌 AdSense 依舊這么“頑固”的提示這個(gè)問題呢,?
先說說如何解決谷歌 AdSense 這個(gè)提示
很明顯這不是谷歌 AdSense 的錯(cuò),原因可能就出在我們站點(diǎn)域名的 DNS 解析上,,新手站長(zhǎng)們和谷歌 AdSense 理解的“站點(diǎn)根目錄”存在差異,,一般我們理解的“站點(diǎn)根目錄”是類似www.mysite.com/這樣的,谷歌 AdSense 所謂得“站點(diǎn)根目錄”其實(shí)是mysite.com/這樣的,細(xì)心得站長(zhǎng)們可能發(fā)現(xiàn)就是少了一個(gè)www.而已,,可不要小看少了這個(gè)www.,,理論上 www.mysite.com 和 mysite.com 對(duì)于搜索引擎來說是兩個(gè)站點(diǎn):mysite.com 是主域名站點(diǎn),www.mysite.com 是個(gè)二級(jí)域名站點(diǎn),。雖然我們習(xí)慣性并且經(jīng)常想當(dāng)然的把 www.mysite.com 當(dāng)作我們的站點(diǎn)域名來使用,,但依舊改變不了 mysite.com 才是我們主域名的事實(shí),至于為什么主域名前面加 www,,大家可以自行百度,、谷歌一下“萬維網(wǎng)”腦補(bǔ),明月就不再贅述了(實(shí)際是解釋萬維網(wǎng)真的是太暴露年齡了,!╯□╰),。
分清楚了主域名和二級(jí)域名我們?cè)賮砜垂雀?AdSense 這個(gè)有關(guān) ads.txt 的提示就明白如果你是用 www.mysite.com 作為站點(diǎn)域名的話,那么看到谷歌 AdSense 這個(gè)提示基本就斷定是谷歌 AdSense 請(qǐng)求 mysite.com 主域名訪問 ads.txt 出錯(cuò)了,,也就是 mysite.com/ads.txt 這個(gè)網(wǎng)址訪問存在異常,。原因就是你在做域名 DNS 解析的時(shí)候主域名解析沒有設(shè)定好。這個(gè)“沒有設(shè)定好”有很多含義,,當(dāng)我們需要將域名解析給指定的站點(diǎn)服務(wù)器的時(shí)候都是 A 解析到 IP 地址即可,,主域名和二級(jí)域名解析舉例如下:
- @做 A 解析到服務(wù)器 IP,對(duì)應(yīng)域名形式 mysite.com
- www 做 A 解析到服務(wù)器 IP,,對(duì)應(yīng)域名形式 www.mysite.com
這就是常見站點(diǎn)域名 DNS 解析的方法,,這種解析可以無論 mysite.com 還是 www.mysite.com 訪問都可以到達(dá)你的站點(diǎn),為了 SEO 優(yōu)化的需要,,一個(gè)站點(diǎn)只使用一個(gè)域名才是正理,,因?yàn)樵谒阉饕婵磥碇饔蛎投?jí)域名是兩個(gè)站點(diǎn),所以我們會(huì)根據(jù)自己的喜好在主域名和 www 二級(jí)域名里優(yōu)先選擇一個(gè)作為站點(diǎn)主要域名使用,,無論選擇哪個(gè)都必須保證另一個(gè)可以自動(dòng)跳轉(zhuǎn)重定向到優(yōu)先使用的域名上,,因?yàn)榧s定俗成的原因,我們就以優(yōu)先使用 www.mysite.com 為例,,這個(gè)時(shí)候就要保證 mysite.com 的訪問請(qǐng)求可以自動(dòng)跳轉(zhuǎn)重定向到 www.mysite.com,,這種叫做 301 重定向跳轉(zhuǎn),搜索引擎是支持和允許這種重定向跳轉(zhuǎn)的,,一般 301 重定向可以借助站點(diǎn)服務(wù)器上 Web 服務(wù)器應(yīng)用來實(shí)現(xiàn),,不少站長(zhǎng)們都忽略了這一步造成自己得站點(diǎn) mysite.com、www.mysite.com 都可以訪問,,這對(duì)搜索引擎來說就是一個(gè)站點(diǎn)兩個(gè)域名了,這樣站點(diǎn)域名的權(quán)重就被分散了,,對(duì)站點(diǎn) SEO 是很不利的,。明月的博客選擇的就是以 www.imydl.com 為主要域名的,造成谷歌 AdSense 這個(gè)提示就是因?yàn)槭韬鐾私o imydl.com 也做 DNS 解析了,,沒有 DNS 解析即使 Web 服務(wù)器里做了 301 重定向依舊是 imydl.com 請(qǐng)求失敗,,這個(gè)疏忽主要是從更換 DNS 解析服務(wù) CloudXNS 到阿里云 DNS 期間造成的,,所以近期谷歌 AdSense 有了這個(gè)提示,理解了這些解決谷歌 AdSense 這個(gè)提示也就很簡(jiǎn)單了,,無非就是在 DNS 解析里做個(gè)@值的 A 解析到服務(wù)器 IP 即可,。一般完成解析 24 小時(shí)候谷歌 AdSense 這個(gè)提示就消失了也就表明成功的解決了。
再說說啟用了 CDN 后如何做域名的解析
上面是解決了谷歌 AdSense 的警告提示,,很多站長(zhǎng)都知道明月一直都很推崇給站點(diǎn)使用 CDN,,一是可以提升站點(diǎn)訪問速度,二是隱藏站點(diǎn)服務(wù)器真實(shí) IP 以提升站點(diǎn)服務(wù)器的安全,。不少站長(zhǎng)在使用 CDN 的時(shí)候總是忽略今天講到的這個(gè)主域名和 www 二級(jí)域名的問題,看似兩個(gè)都解析有點(diǎn)兒多余,,其實(shí)不然,,因?yàn)槟銢]法保證用戶只用主域名或者 www 二級(jí)域名訪問站點(diǎn),并且從輸入效率上來說主域名訪問更快捷,,不是嘛,?所以為了保證兼容性和用戶體驗(yàn)甚至對(duì)搜索引擎的友好度這是必須要做的,即使用了 CDN 也要這樣做,。
在給站點(diǎn)啟用 CDN 時(shí)比較常用的方式就是 CNAME 方式了,,也就是在 DNS 解析服務(wù)里將 A 解析更換為 CNAME,解析記錄由 IP 更換為 CDN 提供的 CNAME 值,,IP 地址提交給 CDN 作為回流源,。今天要給大家強(qiáng)調(diào)的就是在使用 CDN 的時(shí)候主域名和 www 二級(jí)域名都要放到 CDN 里,這樣做的主要原因就是可以保證真正隱藏了服務(wù)器真實(shí) IP,,主域名和 www 二級(jí)域名不能共享一個(gè) CDN 的 CNAME 值,,原因還是“主域名和 www 二級(jí)域名理論上是兩個(gè)站點(diǎn)”這條鐵律,也就是說在 CDN 里添加一個(gè)主域名 mysite.com 了還要添加 www.mysite.com 二級(jí)域名,,哪怕 IP 源站是一樣得,!通俗點(diǎn)講這樣做的好處就是“頭尾兼顧”,否則就是“顧頭不顧腚”,,那就很尷尬了也很不安全,!有點(diǎn)兒繞,大家慢慢理解吧,!
Nginx 里如何實(shí)現(xiàn)主域名和 www 二級(jí)域名的 301 重定向
因?yàn)榻裉熘v的這個(gè)很抽象,,所以很多站長(zhǎng)們可能一時(shí)理解不了,明月建議大家理解與否都要做好這方面的工作,,以后慢慢理解就是了,,因?yàn)檫@涉及站點(diǎn) SEO、服務(wù)器安全很多方面。所以為了方便大家死搬硬套,,特分享一下 Web 服務(wù)器 Nginx 下實(shí)現(xiàn)主域名和 www 二級(jí)域名的 301 重定向配置方法,,大家只需要將里面得域名更換為自己的域名放到對(duì)應(yīng)的 Nginx 站點(diǎn)配置文件里即可。
如果你的站點(diǎn)是 HTTP 協(xié)議的話,,只需要將下面得配置代碼添加到 Nginx 站點(diǎn)配置文件 sever 模塊里即可,,具體位置建議在 server_name 語句行下面,如:
- server
- {
- listen 80;
- #listen 443 ssl;
- server_name mysite.com www.mysite.com;
- #301 跳轉(zhuǎn)
- return 301 http://www.mysite.com$request_uri;
- #下面這個(gè) location 可要也可不要,,自己看著辦吧,!我感覺沒有影響
- location / {
- return 301 http://www.mysite.com$request_uri;
- }
-
- if ($host != 'www.mysite.com' ) {
- return 301 http://www.mysite.com$request_uri;
- break;
- }
- #以下省略……
- }
這樣就可以實(shí)現(xiàn)瀏覽器地址欄里輸入“mysite.com”后自動(dòng)跳轉(zhuǎn)到“www.mysite.com”了。
Nginx 的站點(diǎn)配置文件是非常靈活得,,一個(gè)配置文件里可以有多個(gè) server 塊,,只要是不同 listen 端口或者 server_name 即可,上述代碼就可以根據(jù) server_name 分拆為兩個(gè) server 塊,,一個(gè) server_name 為 mysite.com,一個(gè) sever_name 為 www.mysite.com,這時(shí)候我們得 301 跳轉(zhuǎn)代碼就可以放到需要跳轉(zhuǎn)的哪兒個(gè)域名 server 里了,,如下:
- server
- {
- listen 80;
- #listen 443 ssl;
- server_name mysite.com;
- #301 跳轉(zhuǎn)
- return 301 https://www.mysite.com$request_uri;
- #下面這個(gè) location 可要也可不要,自己看著辦吧,!我感覺沒有影響
- location / {
- return 301 http://www.mysite.com$request_uri;
- }
-
- if ($host != 'www.mysite.com' ) {
- return 301 http://www.mysite.com$request_uri;
- break;
- }
-
- }
- server
- {
- listen 80;
- #listen 443 ssl;
- server_name www.mysite.com;
- #以下省略……
- }
如果你的站點(diǎn)是 HTTPS 的話,,首先需要在 listen 80 的 server 里(如果沒有可以參考上面 HTTP 的代碼添加一個(gè))添加如下代碼:
- #301 跳轉(zhuǎn)
- return 301 https://www.mysite.com$request_uri;
- location / {
- return 301 https://www.mysite.com$request_uri;
- }
-
- if ($host != 'www.mysite.com' ) {
- return 301 https://www.mysite.com$request_uri;
- break;
- }
記住上述代碼是添加在 listen 80 的 server 里哦!
這是實(shí)現(xiàn)瀏覽器地址欄里輸入“mysite.com”后自動(dòng)跳轉(zhuǎn)到“https://www.mysite.com”的,。
然后在 listen 443 的 server 里 server_name 行下面添加如下代碼:
- #301 跳轉(zhuǎn)
- if ($host != 'www.mysite.com' ) {
- return 301 https://www.mysite.com$request_uri;
- break;
- }
這是實(shí)現(xiàn)“https://mysite.com”跳轉(zhuǎn)到“https://www.mysite.com”的,。
這個(gè)跳轉(zhuǎn)主要是為了應(yīng)對(duì)啟用 HTTPS 并加入了 HSTS Prelod List 需要得,有興趣的可以參考【加入 HSTS Prelod List 讓你的域名「嵌入」主流瀏覽器,,一同發(fā)行,!】一文。
上面的大家可以舉一反三實(shí)現(xiàn) www.mysite.com 自動(dòng)跳轉(zhuǎn)到 mysite.com 的形式,,也就是以主域名為主要站點(diǎn)域名的,。
對(duì)于老站長(zhǎng)來說可能今天說的這些都非常的簡(jiǎn)單,從谷歌 AdSense 的 ads.txt 提示開始啰嗦了這么多其實(shí)主要是為了讓新手站長(zhǎng)們不要在域名解析和跳轉(zhuǎn)上走彎路,,明月發(fā)現(xiàn)不少站長(zhǎng)們?cè)谶@方面的都是一知半解甚至是不明所以,,這給站點(diǎn)帶來了很大的安全隱患,還會(huì)造成搜索引擎收錄時(shí)間延長(zhǎng)的問題,,希望可以幫到大家,!謝謝大家長(zhǎng)期以來的支持!
目前明月的谷歌 AdSense 后臺(tái)的有關(guān) ads.txt 的提示已經(jīng)消失了,!