阿帕奇“找不到文件。”而不是 404. 错误文档

2024-03-19

我想设置自定义 404 错误文档,但我遇到了问题!

首先,我的 .htaccess 中有两个 RewriteRules:

RewriteRule ^([^/.]+)/([^/.]+)/([^/.]+)/?$ /$2/$3.php?lang=$1 [L]
RewriteRule ^([^/.]+)/([^/.]+)/([^/.]+)/([^/.]+)/?$ /$2/$3/$4.php?lang=$1 [L]

所以我的网址看起来像: /de-de/page/other/stuff 并打开 /page/other/stuff.php?lang=de-de

现在是时候设置我自己的错误文档了: 错误文档 404 /404.php

如果“/de-de/page/other/”中有错误,例如“/de-de/wrong/page/”,我成功获得错误文档。但如果 php 文件名有误(例如“wrong-stuff”而不是“stuff”),我只会收到“文件未找到”消息。但不是我的错误文档。

怎么了?我能做什么来修复它?

感谢您的帮助!

AuthType Basic
AuthName "Password Protected Area"
AuthUserFile /var/www/vhosts/<domain>/development/tests/demo.<domain>/.htpasswd
Require valid-user

<IfModule mod_rewrite.c>
    RewriteEngine on        
    RewriteCond %{HTTPS} !=on
    RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R,QSA]
</IfModule>



RewriteRule ^([^/.]+)/([^/.]+)/([^/.]+)/?$ /$2/$3.php?lang=$1 [L]
RewriteRule ^([^/.]+)/([^/.]+)/([^/.]+)/([^/.]+)/?$ /$2/$3/$4.php?lang=$1 [L]

ErrorDocument 404 /404.php 

阿帕奇错误日志:

[404] GET /de-de/support/support/fdfssdf HTTP/1.0
AH01071: Got error 'Primary script unknown\n'

Use RewriteCond检查php文件是否存在:

RewriteCond %{REQUEST_URI} ^/([^/.]+)/([^/.]+)/([^/.]+)/?$
RewriteCond %{DOCUMENT_ROOT}/%2/%3.php -f
RewriteRule ^ /%2/%3.php?lang=%1 [L]

RewriteCond %{REQUEST_URI} ^/([^/.]+)/([^/.]+)/([^/.]+)/([^/.]+)/?$
RewriteCond %{DOCUMENT_ROOT}/%2/%3/%4.php -f
RewriteRule ^ /%2/%3/%4.php?lang=%1 [L]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

阿帕奇“找不到文件。”而不是 404. 错误文档 的相关文章

随机推荐

  • Windows 应用程序认证工具包验证期间出现“检测到高操作系统版本验证”错误

    运行时出现以下测试失败Windows App Certification Kit 10 0 Platform version launch Error Found The high OS version validation detecte
  • 尝试使用空的捕获[重复]

    这个问题在这里已经有答案了 假设我有一个 try 语句和空 catch 是不好的做法吗 例如 假设我有两次单独的尝试 其中一次可能失败 但另一次成功 或者两者都成功 或者任何可能的组合 处理这样的代码是不好的做法吗 Example if m
  • 定义全局 android.widget var/val 时的“lateinit”或“by懒惰”

    定义全局时android widget变量 例如TextView 是否最好使用lateinit or by lazy 我最初想使用by lazy会被首选 因为它是不可变的 但我不完全确定 by lazy例子 class MainActivi
  • React-router - 如何在 React 中的页面之间传递数据?

    我正在开发一个项目 必须将数据从一个页面传递到另一个页面 例如 我有data在第一页上 let data id 1 name Ford color Red id 2 name Hyundai color Blue 这是第一个组件页面 我在其
  • javascript:如何调试键盘事件

    想象一个使用自定义键盘事件处理程序的 Web 应用程序 该处理程序可能会执行事件冒泡或事件捕获 有没有办法 例如 Firefox Firebug 插件 调试每个击键 键盘事件 就像是 显示事件类型和所有属性 跟踪哪个 javascript
  • 在三个js中使用鼠标悬停更改网格的颜色

    我已经编写了一个 WebGL 脚本 该脚本使用 jsonloader 和 Three js 显示多个网格 现在我想添加 MouseOver 和 onClick 事件 第一个是当鼠标悬停在网格上时简单地更改网格的颜色 function ren
  • PHP/Smarty 来自数据库的嵌套数组

    好的 我正在尝试通过嵌套查询访问 php mysql 数据库 例如 我有 2 张桌子 1 人和 2 登记 我在注册中有一个推荐 ID 选项卡 因此 当用户登录时 他应该能够看到在其 ID 下完成的 4 级注册 表结构 登记 编号 注册ID
  • Seaborn FacetGrid 包括用于删除级别的空列/行[重复]

    这个问题在这里已经有答案了 我正在使用内置的 Seaborn 数据集钻石建立一个基于 切割 和 颜色 的 FacetGrid 然而 我首先删除颜色 D 和 E 以及剪切 Fair 希望得到 5x5 网格 我的代码是 diamonds sns
  • PHP 类型转换混乱

    我有以下代码 我一直认为 res 应该是 false 就像上面的表达式一样 PHP 会尝试将 val 类型转换为布尔类型 其中零将被转换为 false 和字符串 非空字符串为 true 但是如果我执行上面的代码输出将是 boolean tr
  • 何时使用 Hashie::Mash?

    正在从这个 JSON API 获取一些产品 我想知道 我真的需要吗Hashie Mash 直播应用程序 http runnable com U QJCIFvY2RGWL9B pretty json keys http runnable co
  • 获取每秒音频文件的最大幅度

    我知道这里有一些类似的问题 但大多数都与生成波形有关images 这不是我想要的 我的目标是为音频文件生成波形可视化 类似于 SoundCloud 但不是图像 我希望获得数组中音频剪辑每秒 或半秒 的最大幅度数据 然后我可以使用这些数据创建
  • 使用 ACTION_IMAGE_CAPTURE 拍照并 setImageBitmap 来显示它

    编辑我更新了代码以反映两个答案中建议的更改 不幸的是 现在我的应用程序强制关闭 错误列在底部 这是我的相机 图片类的全部内容 除了imports 这个类应该拍摄一张照片 将其显示到屏幕上 并让另一个类拥有图片的字符串路径以用作附件 它拍摄的
  • 在 Java/JRI 代码中加载 R 自己创建的库时出现问题

    我创建了自己的新 R 库 称为 Media 当我尝试用RGui加载它时没有问题 并且可以调用新包中定义的函数 这就是我加载它的方式 gt library Media 但是 我也尝试从以下位置调用该函数Java JRI http www rf
  • 验证器:禁用客户端时,它们在回发时是否保持禁用状态?

    我一直在学习很多关于标准 asp net 验证器的知识 我最新的发现是关于如何禁用验证器客户端 这非常酷 现在 如果我的初始帖子启用了验证器 但在客户端 我禁用它 服务器端是否识别客户端更改并保留它 或者在页面发送回用户时重新启用它 Tha
  • 如何在我的请求中使用从 Twitter OAuth 1.0a 获得的“用户上下文访问令牌”?

    我已经成功 实现了 Twitter 三足身份验证过程来获取用户访问令牌 问题是访问令牌似乎无效 或者我使用错误 我已经能够获取应用程序的访问令牌 它可以访问有限的 Twitter API 我通过在标题上添加 身份验证 承载 访问令牌 来使用
  • 来自响应内容流的 Pandas 0.25.0 和 xlsx

    r requests get projectsExportURL auth username password verify False stream True r raw decode content True add snapshot
  • 从 Django 1.7.1 升级到 1.8.2 失败

    我的 Django 1 7 1 应用程序运行良好 但我想升级到更新的版本 1 8 2 我正在按照说明进行操作here https docs djangoproject com en 1 8 howto upgrade version 基本上
  • 如何在提交后的钩子脚本中获取项目路径?(git)

    我想调用位于存储库中的脚本 我当然可以执行以下操作 bin sh myscript sh 但我认为这不太好 那么如何在提交后脚本中获取项目的路径呢 When you re dealing with a non bare repository
  • 动态对话框——bash 中的菜单框

    我正在寻找有关在 bash 中制作动态对话框菜单框的良好解释 我正在尝试从具有如下结构的文件加载用户列表 user rw412 0 2 rx511 23 1 sgo23 9 2 fs352 1 4 another user rw412 0
  • 阿帕奇“找不到文件。”而不是 404. 错误文档

    我想设置自定义 404 错误文档 但我遇到了问题 首先 我的 htaccess 中有两个 RewriteRules RewriteRule 2 3 php lang 1 L RewriteRule 2 3 4 php lang 1 L 所以