gpt4 book ai didi

php - 为 404 页面创建重定向

转载 作者:可可西里 更新时间:2023-11-01 01:12:09 25 4
gpt4 key购买 nike

我创建了一个 404.php 页面并在我的 .htaccess 文件中添加了以下内容

ErrorDocument 404 /404.php

还尝试删除斜杠、添加完整的 URL 等,

无论我做什么,无论我在 URL 中写什么,我都会得到我的 index.php UI。事情是这样的,它没有将我重定向到 domain.com/index.php 或“/”。 URL 保留,但 UI 是 index.php 的内容

我在下面添加了我的重定向,以防您在那里看到有冲突的东西

<IfModule mod_rewrite.c>
RewriteEngine On

RewriteCond %{HTTP_HOST} !^www.example.com$ [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [L,R=301]

RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]


RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

最佳答案

根据我对 mod_rewrite 的了解,最后 4 行是在说

如果请求的文件名既不是文件也不是目录,

重定向到 index.php。

我相信这就是正在发生的事情。

所有在您应用程序的物理路径上不可用的路由都将转到 index.php

您的应用程序中需要一些 404 机制。如果您使用的是某些框架,它通常会抛出“RouteNotFound”之类的异常,然后错误处理程序会重定向到 404 页面,您也可以执行类似的操作并从应用程序内部重定向到 404.php。

if($should_be_an_error) {  
header("Location: 404.php");
}

(很多年没用过类似的东西,但应该是类似的东西)

或删除`

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

`

但是你的其他路线可能会停止工作。

编辑:

因为你想重定向到 404.php 而不是 index.php(从评论中获取)代码应该更改为

RewriteRule . /404.php [L]

(重写 block 的最后一行)

关于php - 为 404 页面创建重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51503696/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com