0

我想在我的 .htaccess 文件中设置一个规则,以便任何输入的 url,因为没有这样的文件而导致 404,自动重定向到网站的主页:index.php

我的 .htaccess 文件如下所示:

RewriteEngine On
RewriteCond %{HTTP_HOST} !^queenslandbeerweek.com.au$ [NC]
RewriteRule ^(.*)$ http://queenslandbeerweek.com.au/$1 [L,R=301]
ErrorDocument 404 /index.php 

这会导致 index.php 文件显示但已损坏并在地址栏中留下错误的 URL。

我在另一篇文章的答案中读到,它与将错误的 URL 作为参数传递有关,导致页面无法正确加载,因为页面调用数据库中的数据并将错误的 URL 作为参数传递index.php 但没有提示解决方案是什么。

我想要发生的情况是,如果在地址栏中输入了不正确的 URL,或者如果链接到不存在的文件,则完全忘记该文件,删除所有内容,然后转到主页索引.php。

index.php 从数据库调用数据

这可以使用 .htaccess 文件吗?

我的另一个网站也有同样的问题。

任何帮助将不胜感激。干杯,艾尔。

4

2 回答 2

1

我认为您不能直接重定向错误文档,但可以捕获不存在的文件和文件夹

!-f意味着不是文件!-d意味着不是目录,$1是什么在(.*)(url中的路径)

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) /index.php?errorurl=$1 [R=301,L]
于 2013-06-27T10:52:51.297 回答
0
ErrorDocument 404 /404.php

您可以将 404 错误模板放置在您想要的任何位置。例如,您可以将所有错误消息放在一个名为 errormessages 的文件夹中

ErrorDocument 404 /errormessages/404.php 
于 2013-06-27T10:43:35.937 回答