gpt4 book ai didi

.htaccess - htaccess 错误 404 的自定义目录

转载 作者:行者123 更新时间:2023-12-02 06:25:07 26 4
gpt4 key购买 nike

我有一个网站,每个用户都在不同的目录中安装了一个 cms,结构如下:

/ (root)
/cms_user1/
/cms_user1/404.php
/cms_user1/.htaccess
/cms_user2/
/cms_user2/404.php
/cms_user2/.htaccess

每个 .htaccess 文件中都有:

ErrorDocument 404 /404.php

问题是,通过这种方式,页面 404.php 不会加载到 /cms_client1/404.php 上,而是加载到根目录中,即 /404.php

有没有一种方法可以自动加载用户目录中的404.php,无需指定目录名称

PS:到目前为止我发现的唯一方法是在每个 .htaccess 中指定目录名称(在我的情况下这不是最好的选择,因为我必须编辑每个 htaccess),如下所示:

ErrorDocument 404 /directory/404.php

最佳答案

坏消息:使用 ErrorDocument 你无法做到这一点。
好消息:可以使用mod_rewrite规则。

在问题中显示的每个 .htaccess 中,您可以有这样的规则:

RewriteEngine On

# Determine the RewriteBase automatically/dynamically
RewriteCond $0#%{REQUEST_URI} ^([^#]*)#(.*)\1$
RewriteRule ^.*$ - [E=BASE:%2]

# if request is not for a file
RewriteCond %{REQUEST_FILENAME} !-d
# if request is not for a directory
RewriteCond %{REQUEST_FILENAME} !-f
# forward it to 404.php in current directory
RewriteRule . %{ENV:BASE}/404.php [L]

关于.htaccess - htaccess 错误 404 的自定义目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25667663/

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