该网站仅包含index.php和通过JavaScript更改内容,当我输入随机地址而不是某些真实的导航链接时,它只显示标题,没有内容,没有重定向。
在.htaccess中使用ErrorDocument 404 /404.html
无济于事。
有没有办法解决这个问题?
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [NE,L]
ErrorDocument 404 /404.html
</IfModule>
答案 0 :(得分:2)
Javascript需要加载实际页面...如果您获得404,则没有javascript可用于处理重定向。
您的虚拟主机是否支持自定义.htaccess文件?它应该被命名为别的吗?另外,请确保.htaccess位于网页的根目录中,因此它将包含所有子文件夹。
如果您想将.htaccess与javascript结合使用,请尝试以下操作:
ErrorDocument 404 "<script>//do something</script>"
修改强>
因为.htaccess中的这一行
RewriteRule ^(.*)$ index.php?q=$1 [NE,L]
您永远不会得到实际的404错误。原因是“www.example.com/page1”等网址会重定向到:'www.example.com/index.php?q = page1'
要打击错误页面未加载,请在检测“q”变量的PHP脚本中执行以下操作:
if($_REQUEST['q'] == ""){
//Show the home page
}else if($_REQUEST['q'] == "portfolio"){
//Show portfolio page
}else{
//No page for provided arguments, show an error or redirect to error page.
}