gpt4 book ai didi

.htaccess - 重定向 404 错误 htaccess 后重写 URL

转载 作者:行者123 更新时间:2023-12-03 07:54:37 28 4
gpt4 key购买 nike

所以我知道这可能看起来有点奇怪,但为了保持一致性,我希望我的所有 url 都以这种形式显示:http://domain.com/page/ 到目前为止,我已经让常规页面正常工作,但我似乎无法让错误页面正常工作。

如果用户访问的页面或目录不存在,我希望浏览器硬重定向到: http://domain.com/404/ 然而,这个目录实际上并不存在。错误页面的真实位置将在/pages/errors/404.php下

此外,虽然我不需要所有各种错误(400、401、403、404、500)的确切答案,但我将应用任何方法将所有这些重定向到它们的“正确”URL(例如http://domain.com/400/ http://domain.com/500/ 等)

有任何想法吗?

最佳答案

在你的 .htaccess 中试试这个:

.htaccess

ErrorDocument 404 http://example.com/404/
ErrorDocument 500 http://example.com/500/
# or map them to one error document:
# ErrorDocument 404 /pages/errors/error_redirect.php
# ErrorDocument 500 /pages/errors/error_redirect.php

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_URI} ^/404/$
RewriteRule ^(.*)$ /pages/errors/404.php [L]

RewriteCond %{REQUEST_URI} ^/500/$
RewriteRule ^(.*)$ /pages/errors/500.php [L]

# or map them to one error document:
#RewriteCond %{REQUEST_URI} ^/404/$ [OR]
#RewriteCond %{REQUEST_URI} ^/500/$
#RewriteRule ^(.*)$ /pages/errors/error_redirect.php [L]
ErrorDocument将所有 404 重定向到特定 URL,将所有 500 重定向到另一个 URL(替换为您的域)。

重写规则将该 URL 映射到您的实际 404.php 脚本。如果您愿意,可以使 RewriteCond 正则表达式更通用,但我认为您必须明确定义要覆盖的所有 ErrorDocument 代码。

本地重定向:

将 .htaccess ErrorDocument 更改为存在的文件(必须存在,否则会出错):
ErrorDocument 404 /pages/errors/404_redirect.php

404_redirect.php
<?php
header('Location: /404/');
exit;
?>

根据错误号重定向

看起来您需要指定一个 ErrorDocument在 .htaccess 中为您要重定向的每个错误添加一行(请参阅: Apache ErrorDocumentApache Custom Error )。 .htaccess 上面的示例中有多个示例。您可以使用以下内容作为通用重定向脚本来替换上面的 404_redirect.php。

error_redirect.php
<?php
$error_url = $_SERVER["REDIRECT_STATUS"] . '/';
$error_path = $error_url . '.php';

if ( ! file_exists($error_path)) {
// this is the default error if a specific error page is not found
$error_url = '404/';
}

header('Location: ' . $error_url);
exit;
?>

关于.htaccess - 重定向 404 错误 htaccess 后重写 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19962787/

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