0

该网站仅由 index.php 组成,内容通过 JavaScript 更改,当我输入随机地址而不是一些真正的导航链接时,它只会显示标题,没有内容,没有重定向。在ErrorDocument 404 /404.html.htaccess 中没有帮助。

有没有办法解决这个问题?

<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>
4

1 回答 1

3

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”之类的 url 将重定向到:“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.
}
于 2012-11-12T08:32:14.570 回答