ダルタニャンずむンタヌネット、たたはリンク切れの問題に取り組む

写真1

玳士、それは量、賌入/販売の文脈で排他的にリンクを考慮し、それらが眮かれおいるPRサむトを考慮するのに十分です。 ロボットではなく、人々の䞖話をする時です。 むンタヌネットでの䜜業は耐えられなくなり぀぀ありたす。 govnotextsを䜿甚しお自動生成されたサむトのファヌムが咲き乱れ、女性は私を蚱しおくれたす。 それらのために、普通の材料はもちろんのこず、技術資料さえ芋぀けるこずは䞍可胜です。 しかし、正しいリンクがあれば、技術資料の怜玢に぀いおはそれほど心配したせん。 リンクはパのように死に、1幎前にフォヌラムやブログで投皿を読んで、リンクをたどる垌望はほずんどありたせん。



壊れたリンクは珟代のむンタヌネットの非垞に倧きな問題であるず考えおいたすが、圌らはどういうわけか話したり考えたりしたせん。 少なくずも䜕かをする時だず思いたす。 すでに䜕かをしおいるので、それに぀いおお話ししたす。 この䟋が誰かにむンスピレヌションを䞎え、圌がナヌザヌの䞖話をしたいず思うこずを願っおいたす。







むンタヌネットには非垞に倚くの壊れたリンクが存圚するため、たずえば䜕かを遞択するこずさえできたせん。 誰もが䜕かに関する興味深い情報を読んだ埌、圌は自信を持っおリンクをクリックし、どこにも行かなかったこずに出䌚いたした。 そしお、最終的な目暙は通垞、デッドサむトではなく、非垞に掻発です。 そしお非垞に掻発なので、倖郚リ゜ヌスから来るナヌザヌをリダむレクトするこずを心配するこずなく、垞に修正したす。 ただし、倚くの堎合、内郚リ゜ヌスからの移行は気にしたせん。 これの良い䟋は、MSDNの蚘事です。



誰かが材料がどこかに移動したずいう事実に䜕の問題もないこずに反察するでしょう。 Googleで簡単に芋぀けるこずができたす。 たず、可胜であっおも、膚倧な時間がかかりたす。 そしお、これは倧きな問題です。 サむト管理者の気たぐれで移動された単䞀の、しかし有甚なリ゜ヌスは、数千人、堎合によっおは数癟䞇人から時間がかかりたす。 それらのそれぞれは、必芁な玠材を怜玢し、リンクをたどる必芁がありたす。



たた、資料を芋぀けるこずが非垞に困難な堎合や、資料を必芁ずする人がそれを実行できない堎合もありたす。 「Googleに移動」が圹に立たない堎合、2぀の䟋を瀺したす。



最初の䟋。 Microsoft Visual Studioのプラグむンをリリヌスするには、各バヌゞョンがMicrosoft Webサむトで特別なキヌPLKを受け取る必芁がありたす。 数幎間、このキヌはmsdn.microsoft.com/en-us/vsx/cc655795.aspxペヌゞで発行されたしたリンクは機胜したせん。 数か月前、誰かが「vsx」のむデオロギヌがむデオロギヌ的に正しくないず刀断し、「vstudio」に名前が倉曎されたため、リンクが新しいhttp://msdn.microsoft.com/en-us/vstudio/cc655795.aspxになりたした。 しかし、マむクロ゜フトのサむトを含め、どこでもリンクは叀くお新しいものではありたせんでした。 新しいリンクはどこにも掲茉されおいなかったため、Google怜玢でも叀いリンクのみが返されたした。 圌らはMicrosoftフォヌラムで協力し、そこで新しいペヌゞを明確に瀺したした。 質問-リンクの倉曎に぀いお誰かが気分がよくなりたしたか 䞖界䞭で䜕人がこの質問の答えを探すこずを䜙儀なくされたしたか リンクを本圓に倉曎したい堎合、リダむレクトを行うのは本圓に困難でしたか



そしお、もう䞀぀の、より感情的な䟋です。 そのような本「Cfor schoolchildren」がありたす。これはマむクロ゜フトの支揎を受けおリリヌスされ、12〜16歳の子䟛を察象ずしおいたす。

写真2

個人的には、この幎霢でCを勉匷するのが合理的かどうかはわかりたせんが、この本は党䜓ずしお非垞に良い印象を䞎えたす。 非垞に面癜い説明写真によるず、非垞に倚くがありたす。

写真3

そのような本を䜜成するために人々がどれだけの努力を払ったか想像しおみおください。 誰かが孊校にいる間に子䟛をCに玹介するマむクロ゜フトの広告むニシアチブを思い぀いた人が本を曞いお翻蚳し、アヌティストが図面を曞き盎しお、テキストがロシア語で、おそらく他の蚀語でも曞けるようにしたした。 倚くのお金ず時間が費やされたした。 そしお、結果は䜕ですか そしお、私はそうではないず確信しおいたす



子䟛がMicrosoft Visual C2008 Express Editionをダりンロヌドしおむンストヌルする必芁性に぀いお説明されおいるので、子䟛がさらに「パヌト1.最初の知人」になるこずを非垞に疑いたす。 私は孊生の胜力に疑いの䜙地はありたせん。 圌らは䜕の助けもなしにStarcraft 2をダりンロヌドしおむンストヌルし、さたざたなiPhoneで私をよりよく理解しおいたす。 すべおがもっず平凡です。 存圚しないアドレスからダりンロヌドするこずをお勧めしたす。

写真4

移行結果

写真5

そしお、問題は、サむト䞊のデヌタを堎所から堎所ぞず思いがけずシフトするこずにすべおが倱敗する堎合、なぜこの本を䜜成する必芁があったのかずいうこずです。 これから13幎の男子生埒が奇跡の獣「Microsoft Visual C2008 Express Edition」のダりンロヌドを怜玢するためにグヌグルに行くこずは非垞に疑わしい。 この章では90の確率で、Cの孊習は終了したす。



はい、私はマむクロ゜フトを批刀しおいるように芋えるかもしれたせん。 いいえ、他のサむトでは改善されおいたせん。そのような䟋だけが刀明しおいたす。



これらすべおからの私の結論は䜕ですか



他の人たたは自分がリンク先のリ゜ヌスのアドレスを取埗しお倉曎するため、すべおの玠材、ブログ投皿、サヌビス、曞籍、たたは他のプロゞェクトを台無しにするのは非垞に簡単です。 その埌、䜜成者の䟡倀がれロにならない堎合、読者/ナヌザヌが目的のリンクを個別に怜玢するために時間ず神経を費やす必芁があるため、少なくずもそれは倧幅に䜎くなりたす。



この問題をどのように解決したすか



私たちは技術蚘事を曞き、倚くの堎合、さたざたなドキュメント、ツヌル、サヌドパヌティのブログ投皿を参照したす。 その結果、倚くの堎合、玠材や蚘事をサヌドパヌティのサむトに移動するずいう問題に盎面したす。 特に䜕らかの理由で、Microsoft、Intel、AMDなどの倧䌁業のサむトは眪を犯したす。 圌らはセクション党䜓を移動し、その結果、䟋えば、少なくずも1幎は非垞に基本的な仕事に転じたMicrosoft / Intelの埓業員の蚘事で助けを求めたす。 どのリンクをクリックしない-あなたはどこにも行かない。 倚くのプログラマヌが私の経隓を理解しおいるず思いたす。



私は倚くの人がそれに぀いお気にせず、どこぞの移行もうたくいかないず確信しおいたす。 実際には、むンタヌネットには非垞に倚くのデッドリンクが存圚するためです。 ただし、怜玢゚ンゞン甚ではなく、人々向けの蚘事を曞いおいたす。 そしお、私はこれを誇りをもっお宣蚀したす。 ただ䜕癟䞇人も皌いでいたせんが、少なくずもしばらくの間、自分をダルタニャンずしお感じたいです。



ですから、私たちにずっお重芁なこずは、蚘事が私たち自身のサむトの資料だけでなく、倖郚のサむトぞの正しいリンクを含むこずです。 したがっお、どこにも぀ながるリンクを修正する必芁がありたす。 このタスクは、他の倚くのサむトに蚘事を公開しおいるずいう事実により耇雑になっおいたす。 そしお、それらのリンクを線集するのは自然です。力はなく、時には技術的な胜力もありたせん。



自然な解決策は、リダむレクトシステムを䜜成するこずです。 私たちにずっおそれがどのように機胜するかをお話ししたす。誰かが自分のために䌌たようなこずをしたいず思うかもしれたせん。 誰かに興味を持っおもらいたいので、どこにも行かないこずにうんざりしおいたす



システムは、短いリンクのペア倖郚リ゜ヌスぞのリンクを栌玍するデヌタベヌスで構成されおいたす。 リンクを远加するためのナヌザヌむンタヌフェむスは非垞にシンプルで、䞋の図に瀺されおいたす。

写真6

倖郚リ゜ヌスにリンクを入力し、蚘事、ブログなどに挿入する短いリンクを取埗したす。 倖郚リ゜ヌスのアドレスがすでにデヌタベヌスにある堎合、以前に䜜成された短いリンクが返されたす。

写真7

デヌタベヌスにそのようなリンクがない堎合、新しいペアが䜜成され、新しい短いリンクが生成されたす。

写真8

技術的には、レコヌドはリンクテヌブルのデヌタベヌスに栌玍され、次のフィヌルドのセットです。



[生成]ボタンをクリックするず、远加するリンクのアドレスを含むリク゚ストがviva64.comに送信されたす。 リク゚ストを凊理するスクリプトは次のようになりたす。

  $ sql = "select * from link where link = '"。$ add_url。 "'";
 $ link = mysql_query$ sql;
 ifmysql_num_rows$ link{
     $ row = mysql_fetch_array$ link、MYSQL_ASSOC;
     $ new_url = "http://www.viva64.com/qwerty.php?url=".$row['num '];
 }
その他{
     $ sql = "select * from link order by num desc";
     $ link = mysql_query$ sql;
     $ row = mysql_fetch_array$ link、MYSQL_ASSOC;
     $ last_num = $ row ['num'] + 1;
     $ sql = "リンク数倀、リンク倀に挿入
             "。$ last_num。"、 '"。$ add_url。"' ";
     $ link = mysql_query$ sql;
     $ new_url = "http://www.viva64.com/qwerty.php?url=".$last_num;
 } 


スクリプトは、$ add_url倉数のこのアドレスを受け取り、そのアドレスがデヌタベヌス内にあるかどうかを確認したす。

  $ sql = "select * from link where link = '"。$ add_url。 "'";
 $ link = mysql_query$ sql; 


存圚する堎合、デヌタベヌスから受け取ったアドレスの識別子を䜿甚しおリダむレクトスクリプトを呌び出すリンクが、単に$ new_url倉数に曞き蟌たれたす。

  ifmysql_num_rows$ link{
     $ row = mysql_fetch_array$ link、MYSQL_ASSOC;
     $ new_url = "http://www.viva64.com/qwerty.php?url=".$row['num '];
 } 


アドレスが芋぀からない堎合、リンクテヌブルに含たれるアドレスの最倧䞀意識別子が蚈算され、最倧識別子がむンクリメントされた新しいレコヌドがデヌタベヌスに远加されたす。その埌、新しいスクリプトの倀がリダむレクトスクリプトを呌び出す$ new_url倉数に曞き蟌たれたす。

 その他{
     $ sql = "select * from link order by num desc";
     $ link = mysql_query$ sql;
     $ row = mysql_fetch_array$ link、MYSQL_ASSOC;
     $ last_num = $ row ['num'] + 1;
     $ sql = "リンク数倀、リンク倀に挿入
               "。$ last_num。"、 '"。$ add_url。"' ";
     $ link = mysql_query$ sql;
     $ new_url = "http://www.viva64.com/qwerty.php?url=".$last_num;
 } 


その埌、新しいアドレスがデヌタベヌスに远加されたか、既存のアドレスの1぀だけが受信されたかに関係なく、ナヌザヌはリダむレクトリンクを受信したす



リダむレクトメカニズム



viva64.comのリダむレクトスクリプトは耇雑ではありたせん。 実際、圌がしおいるのは、リンク番号をパラメヌタヌずしお受け取り、その番号のリンクをデヌタベヌスから取埗しお、リンクをリダむレクトするこずだけです。 コヌドでは、次のようになりたす。

  $ s = substr$ HTTP_GET_VARS ['url']、0、15;
 $ u = "http://www.viva64.com/";
 $ isConnect = mysql_connect$ sqlserver、$ sqluser、$ sqlpassword;
 if$ isConnect{
     $ isSelectDatabase = mysql_select_db$デヌタベヌス;
     if$ isSelectDatabase{
          $ currentLink = $ s;
          $ sql = "SELECT * FROMリンクWHERE num = '"。$ currentLink。 "'";
          $ link = mysql_query$ sql;
          if$ link && mysql_num_rows$ link{
            $ row = mysql_fetch_array$ link、MYSQL_ASSOC;
            $ u = $ row ['link'];
          }
 }
 }
 print Header 'Location'。$ u; 




壊れたリンクを芋぀けお修正する



壊れたリンクを芋぀けるタスクは、 Fast Link Checkerプログラムによっお解決されたす。 プログラムは、サむトのすべおのペヌゞをクロヌルし、芋぀かったすべおのリンクをたどろうずしたす。 次に、結果がフィルタヌに掛けられ、所定の電子メヌルアドレスに、壊れたリンクのリストを含む電子メヌルが送信されたす。 プログラムの起動は自動化され、週に1回、リンクの状態がチェックされたす。



壊れたリンクを手動で決定した埌、リンクが指す資料が怜玢されたす。 通垞、資料が利甚可胜な新しい䜏所を簡単に刀別できたす。 Microsoft、Intel、AMDなどのサむトでは、玠材を別のセクションに移動するのが倧奜きです。



このリ゜ヌスたたはほずんど同䞀のリ゜ヌスを芋぀けるこずが䞍可胜な堎合非垞にたれですが、リンクはサむトの蚘事から削陀されたす。 倖郚サむトでは、蚘事のリンクはどこにも指し瀺したせんが、ここでは䜕もできたせん。 䞀郚の資料/サむトが消えるず、その埌消えたす。



新しいリンクが定矩されるず、デヌタベヌスに入力されるため、リンクはサむト䞊のすべおの蚘事で再び機​​胜したす。



管理者のむンタヌフェヌスを介しおリンクを倉曎するには、フォヌムのク゚リ

  「リンク」セットの曎新
  'link' = 'http://msdn.microsoft.com/en-us/isv/bb190527.aspx' 
どこ 
  「リンク」。numn = 341 LIMIT 1; 


システムの動䜜に぀いお詳しく説明しおいたせんでしたが、正盎なずころ、ナヌザヌは開発者ではなくシステムです。 しかし、読者から関心があれば、私の同僚のアントン・デュブロビンがすべおをより詳现に説明し、質問に答えたす。



むンテルぞの取り組み



私自身はむンテルの埓業員ではありたせんが、䌚瀟の埓業員の倚くがこのブログを読んでいるこずを知っおいたす。 むニシアチブを提䟛したいので、ここに曞いおいたす。 むンテルは、孊生がむンタヌンシップを行うさたざたなプログラムやサマヌスクヌルを継続的に実斜し、さたざたな興味深いタスクを実行しおいるこずを知っおいたす。 Habrahabrの読者の1人が最新ではない堎合、このテヌマに関するリンクがいく぀かありたす 1、2、3、4 。



タスクの1぀ずしお、むンテルのWebサむト䞊の既存のリンクを適切な状態に保぀こずができるシステムの実装を怜蚎するこずを提案したいず思いたす。 残念ながら、Intelサむトのリンク切れはおそらくMicrosoftサむトのリンクよりも劣っおいたせん。 小さな郚分から始めるこずができたす。 たずえば、ISNのロシア語郚分蚘事、フォヌラム、ブログのサポヌトを怜蚎しおください。 この蚘事で説明したこずは、1぀の問題のみを解決する非垞に狭いハックです。 たた、誀ったリンクの問題には、より深刻な調査ず䜜業が必芁です。



少しでも䞖界を改善したいず思っおいる人々に感謝したす。



All Articles