if (strstr($_SERVER['REQUEST_URI'],'index.php')) {
header('HTTP/1.0 404 Not Found');
}
কেন এই কাজ অভ্যাস? আমি একটি ফাঁকা পৃষ্ঠা পেয়েছি।
if (strstr($_SERVER['REQUEST_URI'],'index.php')) {
header('HTTP/1.0 404 Not Found');
}
কেন এই কাজ অভ্যাস? আমি একটি ফাঁকা পৃষ্ঠা পেয়েছি।
উত্তর:
আপনার কোডটি প্রযুক্তিগতভাবে সঠিক। আপনি যদি এই ফাঁকা পৃষ্ঠাটির শিরোনামগুলি দেখে থাকেন তবে আপনি একটি 404 শিরোলেখ দেখতে পাবেন এবং অন্যান্য কম্পিউটার / প্রোগ্রামগুলি ফাইলটি খুঁজে না পাওয়া হিসাবে প্রতিক্রিয়াটি সঠিকভাবে সনাক্ত করতে সক্ষম হবে।
অবশ্যই, আপনার ব্যবহারকারীরা এখনও SOL। সাধারণত 404s ওয়েব সার্ভার দ্বারা পরিচালিত হয়।
সমস্যাটি হ'ল, একবার ওয়েব সার্ভার পিএইচপি পৃষ্ঠার প্রসেসিং শুরু করার পরে, ইতিমধ্যে এটি পয়েন্টটি পেরিয়ে গেছে যেখানে এটি 404 হ্যান্ডেল করবে
404 শিরোলেখ সরবরাহ করার পাশাপাশি, পিএইচপি এখন আসল 404 পৃষ্ঠা আউটপুট করার জন্য দায়বদ্ধ।
if (strstr($_SERVER['REQUEST_URI'],'index.php')){
header('HTTP/1.0 404 Not Found');
echo "<h1>404 Not Found</h1>";
echo "The page that you have requested could not be found.";
exit();
}
আপনি যদি শেষ দুটি প্রতিধ্বনির লাইনটি দেখেন তবে সেখানে আপনি সামগ্রীটি দেখতে পাবেন। আপনি চাইলে এটি কাস্টমাইজ করতে পারেন।
এটি সঠিক আচরণ , 404 পৃষ্ঠার বিষয়বস্তু তৈরি করা আপনার পক্ষে।
404 হেডারটি ফাইলটি বিদ্যমান কিনা তা নির্ধারণ করতে মাকড়সা এবং ডাউনলোড-পরিচালকরা ব্যবহার করেন is
(404 শিরোলেখযুক্ত একটি পৃষ্ঠা গুগল বা অন্যান্য অনুসন্ধান ইঞ্জিন দ্বারা সূচিযুক্ত করা হবে না)
সাধারণ ব্যবহারকারীরা তবে HTTP- শিরোনামের দিকে তাকান না এবং পৃষ্ঠাটিকে একটি সাধারণ পৃষ্ঠা হিসাবে ব্যবহার করেন।
রেকর্ডের জন্য, এটি সর্ব-কেস হ্যান্ডলার:
<?php
header($_SERVER["SERVER_PROTOCOL"]." 404 Not Found");
header("Status: 404 Not Found");
$_SERVER['REDIRECT_STATUS'] = 404;
?> <!-- 404 contents below this line -->
die()
প্রয়োজনীয়?
ডিফল্ট সার্ভার 404 পৃষ্ঠা লোড করুন, যদি আপনার একটি থাকে, যেমন অ্যাপাচি জন্য সংজ্ঞায়িত:
if(strstr($_SERVER['REQUEST_URI'],'index.php')){
header('HTTP/1.0 404 Not Found');
readfile('404missing.html');
exit();
}
পিএইচপি 5.4 যেহেতু আপনি এখন করতে পারেন http_response_code(404);
@ কিট এর ভিত্তিতে আর একটি সমাধান।
header($_SERVER["SERVER_PROTOCOL"]." 404 Not Found");
header("Status: 404 Not Found");
$_SERVER['REDIRECT_STATUS'] = 404;
//If you don't know which web page is in use, use any page that doesn't exists
$handle = curl_init('http://'. $_SERVER["HTTP_HOST"] .'/404missing.html');
curl_exec($handle);
আপনি যদি এমন কোনও ওয়েবসাইট প্রোগ্রামিং করছেন যা কোনও সার্ভারে হোস্ট করা আপনার নিয়ন্ত্রণ নেই তবে আপনি বুঝতে পারবেন না কোন ফাইলটি "404missing.html"। তবে আপনি এখনও এটি করতে পারেন।
এইভাবে, আপনি একই সার্ভারে সাধারণ 404 পৃষ্ঠার ঠিক একই ফলাফল সরবরাহ করেছেন। একটি পর্যবেক্ষক একটি বিদ্যমান পিএইচপি পৃষ্ঠা 404 এবং একটি বিদ্যমান নেই এমন পৃষ্ঠার মধ্যে পার্থক্য করতে সক্ষম হবেন না।
একটু সংক্ষিপ্ত সংস্করণ। বিজোড় প্রতিধ্বনি দমন করুন।
if (strstr($_SERVER['REQUEST_URI'],'index.php')){
header('HTTP/1.0 404 Not Found');
exit("<h1>404 Not Found</h1>\nThe page that you have requested could not be found.");
}
if($_SERVER['PHP_SELF'] == '/index.php'){
header('HTTP/1.0 404 Not Found');
echo "<h1>404 Not Found</h1>";
echo "The page that you have requested could not be found.";
die;
}
প্রতিধ্বনি বিবৃতিগুলি কখনও সরলকরণ করবেন না এবং উপরের মতো আধা কোলনটি কখনও ভুলবেন না, এছাড়াও পৃষ্ঠায় একটি সাবস্ট্রার চালান কেন, আমরা সহজেই পিএইচপি_সেলফ চালাতে পারি
আপনি এটি সঠিকভাবে করছেন তবে এটি কিছু পরিমার্জন ব্যবহার করতে পারে। দেখে মনে হচ্ছে এটি সম্বোধন করা হয়েছে তাই আসুন ব্যবহারিক প্রয়োগের সুবিধার কথা বলি:
আমাদের একটি পুরাতন ওয়েবসাইট যা বহুভাষিক প্রযুক্তি ডক্সের একটি বৃহত সংগ্রহ রয়েছে এটি অন্য কোনও শর্তসাপেক্ষে এটি সম্পাদন করছে:
if (<no file found>){
die("NO FILE HERE");
}
সমস্যা (অপ্রত্যাশিত বার্তা এবং খারাপ ব্যবহারকারীর অভিজ্ঞতা ছাড়াও) সমস্যাটি হ'ল আমরা সাধারণত খারাপ লিঙ্কগুলি এবং নিখোঁজ নথিগুলি যাচাই করতে একটি লিঙ্ক ক্রলার (আমাদের ক্ষেত্রে নিখরচায়) ব্যবহার করি। এর অর্থ হ'ল আমরা একটি সঠিকভাবে 200 টি ভুল ত্রুটিযুক্ত প্রতিক্রিয়া পেয়েছিলাম যে সেখানে একটি ফাইল আছে তা আমাদের জানিয়েছে। অখণ্ডতা জানত না যে আমরা একটি পিডিএফ প্রত্যাশা করছি সুতরাং আমাদের পিএইচপি সহ ম্যানুয়ালি একটি 404 শিরোনাম যুক্ত করতে হবে। ডাইর উপরে আপনার কোড যুক্ত করে (কারণ এর পরে কিছুই কার্যকর হবে না এবং শিরোনাম সবসময় যে কোনও উপস্থাপিত এইচটিএমএল এর আগে হওয়া উচিত), অখণ্ডতা (যা ব্রাউজারের মতো কমবেশি আচরণ করে) 404 ফেরত আসবে এবং আমরা ঠিক কোথায় খুঁজে যাব ঠিক তা জানতে পারি নথি পত্র. ব্যবহারকারীকে বলার আরও মার্জিত উপায় রয়েছে যে এখানে একটি ত্রুটি রয়েছে,
header('HTTP/1.0 404 Not Found');
die("NO FILE HERE");
এটা চেষ্টা কর:
if (strstr($_SERVER['REQUEST_URI'],'index.php')) {
header('HTTP/1.0 404 Not Found');
echo "<head><title>404 Not Found</title></head>";
echo "<h1>Not Found</h1>";
$uri = rtrim(dirname($_SERVER['PHP_SELF']), '/\\');
echo "<p>The requested URL ".$uri." was not found on this server.</p>";
exit();
}
আপনি জানেন, আমার ওয়েবসাইটে আমি এই জাতীয় কিছু তৈরি করেছি:
$uri=$_SERVER['REQUEST_URI'];
$strpos=strpos($uri, '.php');
if ($strpos!==false){
$e404="The page requested by you: "".$_SERVER['REQUEST_URI']."", doesn't exists on this server.";
$maybe=str_replace('.php','',$uri);
$maybe=str_replace('/','',$maybe);
die("<center><h1>404</h1><hr><h3>$e404</h3><h3>Maybe try <a href=$maybe>www.leaveyortexthere.p.ht/$maybe</a>?</center>");
}
আমি এটি আপনাকে সাহায্য করে আশা করি.
আমি এই সমস্যায় এসেছি .. আমি মনে করি আপনার সার্ভারে কোনও বিদ্যমান লিঙ্কে পুনর্নির্দেশ করা কৌশলটি করতে পারে! কারণ সার্ভারটি তার 404 ফেরত দেবে:
header('Redirect abbb.404.nonexist');
<যা নিশ্চিতভাবে বিদ্যমান নেই
আপনি যদি সার্ভারের ডিফল্ট 404 পৃষ্ঠা দেখাতে চান তবে আপনি এটিকে ফ্রেমে লোড করতে পারেন:
echo '<iframe src="/something-bogus" width="100%" height="100%" frameBorder="0" border="0" scrolling="no"></iframe>';