malzemeler
- Not Defteri
- xampp
- Site haritası
- 4-5 beyin hücresi
- 10 dakikada hazır
- 1 (alan adı) Sunumu
- 220 kals
KG yaşamınızın bir noktasında, eski ve unutulmuş sayfaları hatalı aramanız gerekir. Bu konuda deneyiminiz varsa ve web sitenizi gerçekten iyi biliyorsanız, hayatınızdaki en sıkıcı şey olacaktır. Öte yandan, bu konuda yeniyseniz… nereden başlayacağınızı bilemezsiniz. Bu sorunla ilk kez karşılaştığımda, senaryo oluşturmak için zamanım olmadı, bu yüzden… hadi şekil… Hemen içeri girelim. Site haritası, arama botlarının ziyaret edeceği tüm URL'leri içeren bir XML dosyasıdır. Site Haritası'nın konumu (neredeyse) her zaman şu şekildedir: http (s): //www.etkialanim.com/sitemap.xml Sadece mevcut site haritalarından herhangi birini “kötüye kullanmak” istemediğimizden, kendi. Yani… bir “metin editörü” aka not defteri açın ve aşağıdakileri yapıştırın:
| xml sürümü = " 1.0 " kodlama = " UTF-8 " ?> |
| < urlset xmlns = " http://www.sitemaps.org/schemas/sitemap/0.9 " > |
| < url > |
| < loc > https://www.google.com/ </ loc > |
| < changefreq > haftalık </ changefreq > |
| < öncelik > 1.0 </ öncelik > |
| </ url > |
| < url > |
| < loc > http://google.com/abc </ loc > |
| < changefreq > haftalık </ changefreq > |
| < öncelik > 1.0 </ öncelik > |
| </ url > |
| < url > |
| < loc > https://www.amazon.com </ loc > |
| < changefreq > haftalık </ changefreq > |
| < öncelik > 1.0 </ öncelik > |
| </ url > |
| < url > |
| < loc > https://www.etsy.com/ </ loc > |
| < changefreq > haftalık </ changefreq > |
| < öncelik > 1.0 </ öncelik > |
| </ url > |
| < url > |
| < loc > https://www.ebay.com/ </ loc > |
| < changefreq > haftalık </ changefreq > |
| < öncelik > 1.0 </ öncelik > |
| </ url > |
| < url > |
| < loc > https://github.com/ </ loc > |
| < öncelik > 0,5 </ öncelik > |
| </ url > |
| < url > |
| < loc > https://www.youtube.com/watch?v=aaaaaaaaaaa </ loc > |
| < öncelik > 0,5 </ öncelik > |
| </ url > |
| </ urlset > |
Sitemap.xml kaydedin Kaydetme! HTTP durumları (temel bilgilerin temelleri) 200 - Tamam 301 - Kalıcı olarak taşındı 400 - Hatalı istekler 401 - Yetkisiz 403 - Yasak 404 - Bulunamadı 500 - Dahili sunucu hatası 502 - Hatalı ağ geçidi 503 - Hizmet kullanılamıyor HTTP durumlarını buradan okuyabilirsiniz: https://en.wikipedia.org/wiki/List_of_HTTP_status_codes Bu öğreticide temel durumları işleyen bir komut dosyası oluşturacağım. Açıkçası uygun bir komut dosyası mevcut tüm durumları içermelidir, ancak bunu yapmayacağım. Bunu yapabilirsin! Kahramanım ol! Bir php dosyası oluşturun ve aşağıdakileri yapıştırın
| |
| $ DomDocument = yeni DOMDocument (); |
| $ DomDocument -> load ( 'sitemap.xml' ); |
| $ DomNodeList = $ DomDocument -> getElementsByTagName ( 'loc' ); |
|
|
| foreach ( $ DOMNodeList olarak $ url ) { |
| echo $ url -> nodeValue ; |
| yankı " " ; |
| } |
| ?> |
Koş! Ve patlama! Ekranınızdaki XML dosyasındaki tüm URL'ler. Peki yaptıklarımız… Yeni bir DOM belgesi oluşturduk ve içine XML dosyasını yükledik. “DOMDocument” bazı özellikleri kullanmamızı ve hayatımızı kolaylaştırmamızı sağlar. Örneğin, verilen “loc” (konum) etiket adına sahip tüm öğeleri arayan “getElementsByTagName”. Evet, normal ifadeyi kullanabiliriz ve evet onları daha çok seviyorum ama sorun şu ki, düzenli ve küçültülmüş XML için uygun kodu yazmanız gerekiyor. Hadi devam edelim! URL'lerimiz var ve şimdi durumlarını kontrol etmeliyiz. Bunu yapmak için aşağıdaki satırları eklemeliyiz:
| |
| $ urls = dizi (); |
| $ DomDocument = yeni DOMDocument (); |
| $ DomDocument -> load ( 'sitemap.xml' ); |
| $ DomNodeList = $ DomDocument -> getElementsByTagName ( 'loc' ); |
|
|
| foreach ( $ DOMNodeList olarak $ url ) { |
| echo $ url -> nodeValue ; |
| $ headers = get_headers ( $ url -> nodeValue ); |
| $ kod = $ başlıkları [ 0 ]; |
| echo $ kodu ; |
| yankı " " ; |
| } |
| ?> |
Verilen URL'den “get_header”, ilk hücreyi [0] saklıyoruz ve sonra ekranda yazdırıyoruz. İlk [0] hücresini neden yazdırıyoruz? Çünkü “get_header” komutu şunu döndürür:
| Dizi |
| ( |
| [0] = > HTTP / 1.1 200 TAMAM |
| [1] = > Tarih: Cts, 29 Mayıs 2004 12:28:13 GMT |
| [2] = > Sunucu: Apache / 1.3.27 (Unix) (Red-Hat / Linux) |
| [3] = > Son Değiştirme Tarihi: Çar, 08 Oca 2003 23:11:55 GMT |
| [4] = > ETag: "3f80f-1b6-3e1cb03b" |
| [5] = > Kabul Aralıkları: bayt |
| [6] = > İçerik Uzunluğu: 438 |
| [7] = > Bağlantı: kapat |
| [8] = > İçerik Türü: metin / html |
| ) |
Şimdi betiği çalıştırırsanız, bunu elde edersiniz:
https://www.google.com/HTTP/1.0 302 Bulundu
http://google.com/abcHTTP/1.0 404 Bulunamadı
https: //www.amazon.comHTTP/1.1 200 TAMAM
https://www.etsy.com/HTTP/1.0 200 TAMAM
https://www.ebay.com/HTTP/1.0 302 Geçici Olarak Taşındı
https://github.com/HTTP/1.1 200 Tamam
https://www.youtube.com/watch?v=aaaaaaaaaaaHTTP/1.0 301 Kalıcı Olarak Taşındı
Çok uzak çok iyi. Kullanıcı dostu değil ama çalışıyor. Bir geliştiricinin herhangi bir sonucu yazdırması / echo etmesi gerekmez, ancak kodlarına güvenirler ve sayaçları kullanabilirler. Sayaçları kullanalım.
| |
| $ counter = 0 ; |
| $ foundCounter = 0 ; |
| $ notFoundCounter = 0 ; |
| $ okCounter = 0 ; |
| $ unknownCoutner = 0 ; |
|
|
| $ urls = dizi (); |
| $ DomDocument = yeni DOMDocument (); |
| $ DomDocument -> load ( 'sitemap.xml' ); |
| $ DomNodeList = $ DomDocument -> getElementsByTagName ( 'loc' ); |
|
|
| foreach ( $ DOMNodeList olarak $ url ) { |
| echo $ url -> nodeValue ; |
| $ headers = get_headers ( $ url -> nodeValue ); |
| $ kod = $ başlıkları [ 0 ]; |
| echo $ kodu ; |
| yankı " " ; |
| $ counter ++; |
| |
| if ( $ headers [ 0 ] == "HTTP / 1.0 302 Bulundu" ) |
| { |
| $ foundCounter ++; |
| } |
| elseif ( $ headers [ 0 ] == "HTTP / 1.0 404 Bulunamadı" ) |
| { |
| $ notFoundCounter ++; |
| } |
| elseif ( $ headers [ 0 ] == "HTTP / 1.0 200 OK" || $ headers [ 0 ] == "HTTP / 1.1 200 OK" ) |
| { |
| $ okCounter ++; |
| } |
| Başka |
| { |
| $ unknownCoutner ++; |
| } |
| } |
|
|
| yankı "" ; |
| echo "Toplam URL'ler:" . $ counter . " " ; |
| echo "Toplam 302 Bulunan:" . $ foundCounter . " " ; |
| echo "Toplam 404 Bulunamadı:" . $ notFoundCounter . " " ; |
| echo "Toplam 200 Tamam:" . $ okCounter . " " ; |
| echo "Diğer durumlar:" . $ unknownCoutner ; |
| ?> |
Şimdi sayılar var, durumlarınız var, kullanıcı dostu değil ve yapmanız gereken tek şey biraz CSS eklemek veya en azından bir HTML tablosuna koymak. Barış!
Hiç yorum yok:
Yorum Gönder