我想在我的.htaccess文件中设置一条规则,以便任何被激活的网址导致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,或者如果跟踪链接,则链接到不存在的文件,完全忘记此文件,删除所有内容,然后转到主页index.php。
index.php从数据库中调用数据
这是否可以使用.htaccess文件?
我与其他网站存在完全相同的问题。
非常感谢任何帮助。 干杯,Al。
答案 0 :(得分:1)
我认为您不能直接重定向错误文档,但可以捕获不存在的文件和文件夹
!-f
表示不是文件!-d
表示不是目录,$1
是(.*)
中的任何内容(网址中的路径)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) /index.php?errorurl=$1 [R=301,L]
答案 1 :(得分:0)
ErrorDocument 404 /404.php
您可以将404错误模板放在任何您想要的位置。例如,您可以将所有错误消息放在名为errormessages
的文件夹中ErrorDocument 404 /errormessages/404.php