ফেভিকন.আইকো অনুরোধগুলি কীভাবে প্রতিরোধ করবেন?


548

আমার ফেভিকন.ইকো নেই, তবে আইই সর্বদা এটির জন্য একটি অনুরোধ করে।

আমার সাইট থেকে ফ্যাভিকনটির জন্য একটি অনুরোধ করা থেকে ব্রাউজারটিকে আটকাতে কি সম্ভব? এইচটিএমএল শিরোনামে কিছু মেটা-ট্যাগ থাকতে পারে?


21
+1 ভাল প্রশ্ন তবে মনে হচ্ছে সহজ সমাধানটি কেবল একটি বৈধ ফ্যাভিকন যুক্ত করা :-) অবশ্যই এটি এক মিনিটের কাজ এবং আপনার সাইটটি এখনই আরও পেশাদার দেখায়?
ম্যাট উইলকো

4
আপনার কাছে খালি ফেভিকন.ইকো ফাইলও থাকতে পারে। এটি অনুরোধগুলি (প্রথমটির পরে) বন্ধ করে দেবে, তবে ব্রাউজারটি একটি ফাঁকা ফ্যাভিকন রেন্ডার করতে পারে না যেখানে এটি সাধারণত তার ডিফল্ট আইকনটি যা রেন্ডার করে।
এমএক্সসিএল

38
কি উদ্দেশ্যে কিছু হবে: আমি বলতে যে, আমি প্রশ্নকারী এর উহ্য বিন্দু সম্পূর্ণরূপে সাথে একমত আছে অতিরিক্ত তৈরি করা বাধ্যতামূলক ? এবং আরও কীভাবে, আমরা প্রতিক্রিয়ার সাথে কিছুটা মেটা ডেটা যুক্ত করতে পারি না যে "আপনি যদি ফেভিকন.ইকোকে অনুরোধ করেছিলেন এবং 404 পেয়েছেন ঠিক তেমন আচরণ করুন, কেবল অনুরোধ করবেন না এবং আরও অবধি পুনরায় জিজ্ঞাসা করবেন না এই পৃষ্ঠা পরিবর্তন হয় "।
ড্যানিয়েল

36
এটি এমন ব্যথা। আমার একটি ওয়েবসার্ভিস রয়েছে যা কেবল জেএসনকে পরিবেশন করে এবং কিছু পরিবর্তন ছাড়াই ফাইল পরিবেশন করার প্রাথমিক ক্ষমতাও নেই (শুরু করার জন্য, প্রতিটি পদ্ধতিতে 401/403 এড়াতে একটি লেখার টোকন প্রয়োজন)। আমি ব্যর্থ অনুরোধগুলিতে লগ করেছি তাই আমি সেগুলি পরে বিশ্লেষণ করতে পারি - লগগুলি ফ্যাভিকনের অনুরোধে ক্রমাগত প্লাবিত হয়।
বেসিক

3
এটি 2015. এটি সম্পর্কে কোন খবর?
জোনাথন প্রেটস

উত্তর:


573

আমি প্রথমে বলব যে একটি ওয়েব পৃষ্ঠায় ফেভিকন থাকা ভাল জিনিস (সাধারণত)।

তবে এটি সর্বদা পছন্দসই নয় এবং কিছু সময় বিকাশকারীদের অতিরিক্ত পেডলোড এড়াতে একটি উপায় প্রয়োজন। উদাহরণস্বরূপ একটি আইএফআরএম এটি না দেখিয়ে একটি ফ্যাভিকন অনুরোধ করবে। সবচেয়ে খারাপ, ক্রোম এবং অ্যান্ড্রয়েডে একটি আইএফআরএম ফেভিকনগুলির জন্য 3 টি অনুরোধ উত্পন্ন করবে:

"GET /favicon.ico HTTP/1.1" 404 183
"GET /apple-touch-icon-precomposed.png HTTP/1.1" 404 197
"GET /apple-touch-icon.png HTTP/1.1" 404 189

নিম্নলিখিতগুলি ইউআরআই ডেটা ব্যবহার করে এবং জাল ফ্যাভিকন অনুরোধগুলি এড়ানোর জন্য ব্যবহার করা যেতে পারে:

<link rel="shortcut icon" href="data:image/x-icon;," type="image/x-icon"> 

রেফারেন্সের জন্য এখানে দেখুন:

ক্রোম বাগ / আচরণ সম্ভবত আসন্ন সংস্করণগুলিতে স্থির করা হবে।

আপনার ভোট দেওয়ার জন্য এখানে বাগ জমা দেওয়া আছে:

আপডেট 1:

মন্তব্যগুলি (jpic) থেকে মনে হচ্ছে ফায়ারফক্স> = 25 উপরের সিনট্যাক্সটি আর পছন্দ করে না। আমি ফায়ারফক্স ২ on এ পরীক্ষা করেছি এবং এটি এখনও ওয়েবকিট / ক্রোমে কাজ করার সময় কাজ করে না।

সুতরাং এখানে একটি নতুন যা সাম্প্রতিক সমস্ত ব্রাউজারগুলি আবরণ করা উচিত। আমি সাফারি, ক্রোম এবং ফায়ারফক্স পরীক্ষা করেছি:

<link rel="icon" href="data:;base64,=">

আমি "রিল" বৈশিষ্ট্য মান থেকে "শর্টকাট" নামটি রেখেছি কারণ এটি কেবল পুরানো আইই এবং আই <8 এর সংস্করণগুলির জন্য ডেটা ইউআরআই পছন্দ করে না। আইই 8 তে পরীক্ষা করা হয়নি।

আপডেট 2:

যদি HTML5 এর বিপরীতে বৈধতা পেতে আপনার ডকুমেন্টের প্রয়োজন হয় তবে এটি ব্যবহার করুন:

<link rel="icon" href="data:;base64,iVBORw0KGgo=">

1
উজ্জ্বল। আমি অনুমান করতে পারি যে আপনি খুব কম ভোট পেয়েছেন কেবল এই প্রশ্নটি করার সাথেই যে প্রশ্নটি জিজ্ঞাসা করার পর বেশ কয়েক বছর অতিবাহিত হয়েছিল, এবং কম চালাক উত্তরগুলির পক্ষে ভোট সংগ্রহের জন্য আরও সময় ছিল।
আইকনোক্লাস্ট

20
আপনার হালনাগাদ 2 টিতে ললিপপে সমস্যা ছিল ... যোগ <link rel="icon" type="image/png" href="data:image/png;base64,iVBORw0KGgo=">করার ফলে সমস্যার সমাধান হবে বলে মনে হচ্ছে।
আলকো

2
যদি আমি এটি সঠিকভাবে পেয়েছি তবে আমি data:image/png;base64,iVBORw0KGgo=ব্রাউজারে খুলতে পারি , এটি favicon.icoওরফে হিসাবে সংরক্ষণ করতে পারি । খালি পিএনজি ফাইল এবং এটি ওয়েবসাইট রুটে সংরক্ষণ করুন। রাইট?
মার্টিন

3
@ আলকো যে খালি পিএনজি ফাইলটি এখনও অবৈধ। : <লিংক এখন rel = "আইকন" a href = ", ডেটা:"> এই শুধু একটি ডেটা URL রয়েছে যা একটি খালি ফাইল, ব্যবহারের বর্ণনা তৈরি সম্পর্কে হয়, তাহলে
vog

2
ব্রাউজারগুলি ইনডেক্স.ইচটিএমএল ফাইলটিতে কোনও উল্লেখ না থাকলেও ফ্যাভিকনটির জন্য অনুরোধ করার ঝোঁক রয়েছে, সুতরাং কীভাবে এই সমাধানটি এটি প্রতিরোধ করবে? বিশেষত, আমি ফায়ারফক্সকে কোনও ডোমেনে দেখার সাথে সাথে এটির অনুরোধ করতে খুব আক্রমণাত্মক হতে দেখেছি। অন্যান্য ব্রাউজারগুলি পরে এটি করতে পারে, সূচী ফাইলটি শিরোনামটি লোড করার পরে (ব্রাউজারগুলির অভ্যন্তরীণ সম্পর্কে আরও কিছু জ্ঞানের সাথে মন্তব্য করুন)। নেই একটি ফেভিকন হচ্ছে সম্ভাব্য পার্শ্বপ্রতিক্রিয়া আছে, শুধু এটা google, অথবা: stackoverflow.com/questions/4269695/...
juanheyns

131

<head>আপনার HTML ফাইলের বিভাগে কেবল নিম্নলিখিত লাইনটি যুক্ত করুন:

<link rel="icon" href="data:,">

এই সমাধান বৈশিষ্ট্য:

  • 100% বৈধ এইচটিএমএল 5
  • খুব ছোট
  • আইই 8 এবং এর চেয়ে বেশি বয়স্কদের কাছ থেকে কোনও গতি নেই
  • ব্রাউজারটি বর্তমান এইচটিএমএল কোডটিকে ফেভিকন হিসাবে ব্যাখ্যা করে না (যা এরকম হবে href="#")

4
যদি আপনি কেবলমাত্র কোনও স্থানীয় প্রকল্পে ক্রোম ডেভলগুলি বন্ধ করার চেষ্টা করছেন তবে এটি যাওয়ার সবচেয়ে সহজ এবং পরিষ্কার উপায়।
অ্যান্ড্রু

এই উপর প্রসারিত করুন। ফ্যাভিকন অনুরোধ বন্ধ করার জন্য আমাকে কি আমার এইচটিএমএল ফাইলটিতে অন্তর্ভুক্ত করা দরকার?
আকাশ ভার্মা

2
@ আকাশবর্মা হ্যাঁ, সবই। আর কিছুর দরকার নেই। (যদি না আপনার সাইটের 8 বা তার বেশি বয়সী ইন্টারনেট এক্সপ্লোরার সমর্থন করা প্রয়োজন।) আমি সেই অনুযায়ী আমার উত্তরটি উন্নত করেছি।
vog

@ উদ্বেগ আপনি কি বলতে চাইছেন reserves space?
মোভেরিসেক

@ অ্যান্ড্রু এই সমাধানটিতে ক্রোম ডেভটুলগুলির কী সমস্যা আছে?
ফ্লিন্সচ

47

আমি বিশ্বাস করি আমি এটি দেখেছি (যদিও আমি এটি পরীক্ষা করেছি বা ব্যক্তিগতভাবে ব্যবহার করেছি):

<link rel="shortcut icon" href="#" />

কারও কি একইরকম অভিজ্ঞতা ছিল?

সম্পাদনা করুন:

আমি কেবল উপরের স্নিপেটটি পরীক্ষা করেছি এবং জোর করে সম্পূর্ণ রিফ্রেশে, কোনও ফিডিকন অনুরোধ ফিডলারের মধ্যে দেখা যায়নি। আমি আইই 8 (আই 7 মান হিসাবে কম্প্যাট মোড) এবং এফএফ 3.6 এর বিপরীতে পরীক্ষা করেছি।


1
আমার পরীক্ষাগুলিও বোঝায় যে এই কৌশলটি কাজ করে। তবে, hrefআপনার কাছে ইতিমধ্যে কিছু স্ট্যাটিক (ক্যাশেড) সংস্থান আছে যা আপনি ইতিমধ্যে লোড করেছেন (যেমন সিএসএস বা স্ক্রিপ্ট ফাইল) - এর লিঙ্কটি আমার কাছে ছিল - যাতে গতিশীল (নন-ক্যাশেড) পৃষ্ঠাটি দু'বার অনুরোধ না হয় তা নিশ্চিত করতে। ( href="#"প্রযুক্তিগতভাবে বর্তমান ওয়েব পৃষ্ঠাতে নির্দেশ করার পরে কেবল নিরাপদ থাকতে হবে )।
মার আর্লিগসন

2
সাফারিতে চেষ্টা করেছি। ফ্যাভিকন অনুরোধটি হোস্টিং পৃষ্ঠায় আবার আঘাত করে।
মরগান চেং

27
আমি এটি প্রস্তাব করব না, কারণ এটি ব্রাউজারটিকে (সাফারি 5 / ম্যাক, সম্ভবত অন্যরাও) সার্ভার থেকে ওয়েবপৃষ্ঠার জন্য দু'বার অনুরোধ জানায়।
মানব

2
@ মানাভ এটি আর সাফারি / / ম্যাকের ক্ষেত্রে নেই।
মার্সেল

2
এই বুম! ধন্যবাদ: ডি এখন আমি সেই বিরক্তিকর ত্রুটিটি দেখতে পাচ্ছি না, যতক্ষণ না অবশেষে আমি সেই আইকনটিকে হে করতে তৈরি করি।
লিওন গাবান

39

আপনি পারবেন না। আপনি যা করতে পারেন তা হ'ল সেই চিত্রটিকে যতটা সম্ভব ছোট করা এবং ভবিষ্যতে অনেক ক্যাশে অবৈধ শিরোনাম ( Expires, Cache-Control) সেট করা । এখানে কি ইয়াহু favicon.ico অনুরোধ সম্পর্কে বলতে হবে


7
তিনি বলেছিলেন যে তার ফেভিকন নেই। তারা এর চেয়ে বেশি ছোট পায় না। এবং অ অযৌক্তিক ফাইলগুলি ক্যাশে করার কোনও অর্থ নেই।
innaM

16
যদি তার ফ্যাভিকন না থাকে তবে তার উচিত একটি, এটি আমার বক্তব্য। এর চেয়ে ভাল সমাধান আর নেই। এটা কি যৌক্তিক নয়? অনুরোধগুলি থামানোর কোনও সম্ভাবনা নেই, যদি আপনি ক্যাচিং ব্যবহার না করেন তবে আপনি কী করবেন?
আয়নু জি স্টান

5

আপনি favicon.ico অ্যাক্সেস অস্বীকার করতে .htaccess বা সার্ভারের নির্দেশাবলী ব্যবহার করতে পারেন, তবে সার্ভারটি ব্রাউজারটিতে একটি অ্যাক্সেস প্রত্যাখাত উত্তর প্রেরণ করবে এবং এটি পৃষ্ঠা অ্যাক্সেসকে ধীর করে দেয়।

যখন কোনও ব্যবহারকারী আপনার সাইটে ফিরে আসে তখন ব্রাউজারের ক্যাশে থাকা অবস্থায় ফেভিকন.ইকোকে অনুরোধ করা ব্রাউজারটি বন্ধ করতে পারেন।

প্রথমে একটি ছোট ফেভিকন.ইকো চিত্র সরবরাহ করুন, ফাঁকা হতে পারে তবে যতটা সম্ভব ছোট। আমি 200 বাইটের নীচে একটি কালো এবং সাদা তৈরি করেছি। তারপরে .htaccess বা সার্ভারের নির্দেশাবলী ব্যবহার করে, ফাইলটি ভবিষ্যতে এক-দু'মাস মেয়াদ শেষ হয়ে যায় set একই ব্যবহারকারী যখন আপনার সাইটে ফিরে আসবে তখন এটি ব্রাউজার ক্যাশে থেকে লোড হবে এবং কোনও অনুরোধ আপনার সাইটে যাবে না। সার্ভারে আর 404 এর বেশি লগ নেই।

যদি আপনার সম্পূর্ণ অ্যাপাচি সার্ভার বা কোনও ভার্চুয়াল সার্ভারের নিয়ন্ত্রণ থাকে তবে আপনি এটি করতে পারেন: -

যদি সার্ভার নথির মূলটি / var / www / html বলা হয় তবে এটি /etc/httpd/conf/httpd.conf:- এ যুক্ত করুন

Alias /favicon.ico "/var/www/html/favicon.ico"
<Directory "/var/www/html">
    <Files favicon.ico>
       ExpiresActive On
       ExpiresDefault "access plus 1 month"
    </Files>
</Directory>

তারপরে একটি ফ্যাভিকন.ইকো সমস্ত ভার্চুয়াল হোস্ট করা সাইটগুলির জন্য কাজ করবে যেহেতু আপনি এটি অপরিবর্তিত করছেন। এটি ব্যবহারকারীরা দেখার পরে এক মাসের জন্য ব্রাউজার ক্যাশে থেকে আঁকা হবে।

.Htaccess এর জন্য এটি কাজ করে রিপোর্ট করা হয়েছে (আমার দ্বারা চেক করা হয়নি): -

AddType image/x-icon .ico
ExpiresActive On
ExpiresByType image/x-icon "access plus 1 month"

মডিউলটি সক্ষম করতে ভুলবেন না: ~ / etc / apache2 # a2enmod মেয়াদ শেষ হয়ে যায় & পরিষেবা অ্যাপাচি 2 পুনঃসূচনা
সিনো বোকেম্যান

4

একটি খুব সহজ সমাধান আপনার নীচের কোডটি দেওয়া হয় .htaccess। আমার একই সমস্যা ছিল এবং এটি আমার সমস্যার সমাধান করে।

<IfModule mod_alias.c>
    RedirectMatch 403 favicon.ico
</IfModule>

তথ্যসূত্র: http://perishablepress.com/ block-favicon-url-404-requests/


এখান থেকে লিঙ্কিত নিবন্ধটি খুব ভাল, তবে আমি বিশ্বাস করি যে প্রতিক্রিয়াটির বাক্য গঠনটি ভুল।
এরিকা কেন 21

4

আপনি যদি nginx ব্যবহার করেন

# skip favicon.ico
#
location = /favicon.ico {
    access_log off;
    return 204;
}

এটি অনুরোধটিকে বাধা দেয় না, তবে বিকল্প হিসাবে এটি পছন্দ করি।
কাসিমকে

অবশ্যই, আপনি যদি ওয়েব সার্ভারটি নিয়ন্ত্রণ করতে পারেন।
jbruni


0

আমাদের অভিজ্ঞতায় অ্যাপাচি ফেভিকন.ইকির অনুরোধে নেমে যাওয়ার সাথে সাথে আমরা .htaccess ফাইলে অতিরিক্ত শিরোনাম মন্তব্য করেছি mented

উদাহরণস্বরূপ আমাদের শিরোনামটি এক্স-এক্সএসএস-সুরক্ষা "1; মোড = ব্লক" সেট করেছিল

... তবে আমরা আগে থেকেই a2enmod হেডারগুলি sudo করতে ভুলে গিয়েছিলাম। অতিরিক্ত হেডার পাঠানো হচ্ছে এমন মন্তব্য করা আমাদের ফেভিকন.ইকো সমস্যা সমাধান করেছে।

আমাদের বিকাশের জন্য বেশ কয়েকটি ভার্চুয়াল হোস্টও সেট আপ ছিল এবং কেবলমাত্র http: // লোকালহোস্ট ব্যবহার এবং /favicon.ico আনার সময় 500 অভ্যন্তরীণ সার্ভার ত্রুটিটি ব্যর্থ হয়েছিল। আপনি যদি "কার্ল -v http: //localhost/favicon.ico " চালান এবং হোস্টের নামটি সমাধানকারী ক্যাশে বা সেভাবে কিছু না হওয়ার বিষয়ে একটি সতর্কতা পান তবে আপনি সমস্যার সম্মুখীন হতে পারেন।

এটি আনতে না পারার মতো সহজ হতে পারে (আমরা এটি চেষ্টা করেছি এবং এটি কার্যকর হয়নি, কারণ আমাদের মূল কারণটি আলাদা ছিল) বা অ্যাপাচি 2 সিএনএফ বা .htaccess এ দিকনির্দেশনা অনুসন্ধান করুন যার ফলে অদ্ভুত 500 অভ্যন্তরীণ সার্ভার ত্রুটির বার্তা হতে পারে।

আমরা দেখতে পেয়েছিলাম যে এটি এত তাড়াতাড়ি ব্যর্থ হয়েছে যা অ্যাপাচি এর ত্রুটি লগগুলিতে কার্যকর কিছু ছিল না এবং পুরো সকালে এখানে এবং সেখানে ছোট ছোট জিনিসগুলি পরিবর্তন করে কাটাচ্ছিল যতক্ষণ না আমরা মোড_হেডার লোড করতে ভুলে গিয়ে অতিরিক্ত শিরোনাম স্থাপনের সমস্যাটি সমাধান করি!


0

কখনও কখনও এই ত্রুটিটি উপস্থিত হয়, যখন এইচটিএমএলে কিছু মন্তব্য কোড থাকে এবং ব্রাউজারটি কিছু দেখার চেষ্টা করে। আমার ক্ষেত্রে যেমন আমি ফ্লাস্কে একটি ওয়েব ফর্মের জন্য কোড মন্তব্য করেছি এবং আমি এটি পেয়েছিলাম।

2 ঘন্টা ব্যয় করার পরে আমি এটি নিম্নলিখিত উপায়ে স্থির করেছি:

1) আমি একটি নতুন অজগর পরিবেশ তৈরি করেছি এবং তারপরে এটি মন্তব্য করা এইচটিএমএল লাইনে একটি ত্রুটি ছুঁড়েছে, এর আগে আমি কেবল ত্রুটি ছুঁড়ে ফেলেছিলাম 'জিইটি / ফ্যাভিকন.আইইচটিপি / ১.১ "৪০৪'

২) কখনও কখনও, যখন আমার কাছে একই নামের সাথে অজগর ফাইলের মতো একটি সদৃশ কোড ছিল, তখন আমি এই ত্রুটিটিও দেখেছি, সেগুলিও মুছে ফেলার চেষ্টা করব


-10

আপনি ব্যবহার করতে পারেন

<link rel="shortcut icon" href="http://localhost/" />

এইভাবে এটি সার্ভার থেকে আসলে অনুরোধ করা হবে না।


1
এটি দেখে মনে হচ্ছে এটি কিছু ব্রাউজারগুলির ভীতিজনক ত্রুটি বার্তা নিক্ষেপ করতে পারে - এইচটিটিপিএসের উপর দেওয়া পাতায় সেই কৌশলটি ব্যবহারের জন্য আপনাকেও নজর রাখতে হবে।
ব্রিহিড ম্যাকডোনেল

6
সম্পর্কে: ফাঁকা ব্যবহার করা ভাল।
লুক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.