【发布时间】:2021-01-19 22:04:59
【问题描述】:
我需要在所有无效页面中显示 404 错误页面而不重定向它们。 当前,当输入 /wrong-page 时,它会重定向到 /404。但我想在 /wrong-page 中显示 404 页面的内容。
另外我的网站不使用 PHP,那么有没有办法用 html 和 js,甚至用 htaccess 来做到这一点?
【问题讨论】:
标签: javascript html .htaccess
我需要在所有无效页面中显示 404 错误页面而不重定向它们。 当前,当输入 /wrong-page 时,它会重定向到 /404。但我想在 /wrong-page 中显示 404 页面的内容。
另外我的网站不使用 PHP,那么有没有办法用 html 和 js,甚至用 htaccess 来做到这一点?
【问题讨论】:
标签: javascript html .htaccess
要使用 PHP 进行控制,您需要使用 .htaccess 文件。
例如,如果你想处理一些脚本,那么这个.htaccess文件......
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,NC,L]
将重定向到index.php而不重写 URL。这意味着您可以简单地控制 index.php 中的异常处理...
$someNon404Condition = file_exists($_SERVER['PHP_SELF']);
if ($someNon404Condition) {
include($_SERVER['PHP_SELF']); // do the stuff
} else {
print("404! Why are you trying to access " . $_SERVER['PHP_SELF'] . "?");
}
这将使您更好地控制为404 显示的错误,例如,您可以让页面显示Unable to process $_SERVER[SCRIPT_NAME] for URL 123/456/, 等。
这也可以让您做很多其他事情!忘记一个静态的 404.html 页面,你可以使用动态页面...
explode('/', $_SERVER['PHP_SELF']),然后在标题“也许这就是您要找的东西?”下显示这些匹配结果的列表。【讨论】:
您可以使用.htaccess 文件
把它放在你的.htaccess
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ 404.html [L]
404.html 必须是出现 404 错误时必须显示的错误页面。
【讨论】: