仅当未找到文件时才重定向请求?

2024-05-09

我希望有一种方法可以使用 mod_rewrite 和 Apache 来做到这一点,但也许还有另一种方法可以考虑。

在我的网站上,我为客户的网站重新设计版本设置了目录。如果网络根目录是/home/blah/www,客户端目录将是/home/blah/www/clients/abc。当您通过网络浏览器访问客户端目录时,我希望它使用客户端目录中任何请求的文件(如果存在)。否则,我希望它使用网络根目录中的文件。

例如,假设客户不需要自己的index.html。因此,某些代码将确定不存在index.html in /home/blah/www/clients/abc并将使用其中的一个/home/blah/www。请记住,我不想在任何时候将客户端重定向到 Web 根目录,如果客户端目录未指定其自己的副本,我只想使用具有该名称的 Web 根目录文件。网络浏览器仍应指向/clients/abc该文件是否存在于此处或根目录中。同样,如果有一个请求news.html在客户端目录中does存在那里,然后只提供该文件而不是网络根目录的news.html。用户体验应该是无缝的。

我需要它来处理任何文件名的请求。例如,如果我需要添加一个新行.htaccess对于我可能想要重定向的每个文件,它反而违背了目的,因为需要太多维护,并且考虑到大量文件,很可能会出现错误。

在您的示例中,请指明您的代码是位于客户端目录中的 .htaccess 文件中,还是位于 Web 根目录中。首选 Web 根。


# If requested resource exists as a file or directory, skip next two rules
RewriteCond %{DOCUMENT_ROOT}/$1 -f [OR]
RewriteCond %{DOCUMENT_ROOT}/$1 -d
RewriteRule (.*) - [S=2]
#
# Requested resource does not exist, do rewrite if it exists in /archive
RewriteCond %{DOCUMENT_ROOT}/archive/$1 -f [OR]
RewriteCond %{DOCUMENT_ROOT}/archive/$1 -d
RewriteRule (.*) /archive/$1 [L]
#
# Else rewrite requests for non-existent resources to /index.php
RewriteRule (.*) /index.php?q=$1 [L] 

From 如果文件不存在则重写 http://www.webmasterworld.com/apache/3635920.htm

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

仅当未找到文件时才重定向请求? 的相关文章

随机推荐

  • 可观察集合未因 UI 更改而更新

    我正在尝试将可观察集合绑定到用户控件 但它不会在用户更改时更新 但在通过代码更改用户控件时它会更新 以下是我尝试过的一个例子 它可能有点长 但它正在运行 因此您可以按原样复制并粘贴代码 请参阅帖子末尾我的问题 客户 cs using Sys
  • 如何用 C 语言练习 Unix 编程?

    经过五年的专业 Java 以及较小程度上的 Python 编程并慢慢感觉到我的计算机科学教育逐渐消失 我决定要拓宽我的视野 对世界的一般用处 并做一些 对我来说 感觉更重要的事情就像我真的对机器有影响一样 我选择学习 C 和 Unix 编程
  • 引用生成的类名的 JSS 语法是什么?

    Material UI 在其核心使用 JSS 有时您需要覆盖其基本组件的样式 示例来自Input https github com mui org material ui blob next packages material ui src
  • 如何获取队列中的第 n 个项目?

    我的应用程序中有许多队列和优先级队列 我想轻松访问这些队列中的第 n 个项目 但没有看到使用 API 实现此目的的简单方法 我想我可以创建一个Iterator并迭代到第 n 个元素或使用toArray index 但似乎应该有一个更简单的方
  • 替换 Javascript 中的引号?

    对于我正在制作的网络应用程序 我将收到文本字符串 其中偶尔包含引号 因为我接下来要 document writing 字符串 所以需要将它们更改为撇号或转义 我该怎么做 因为当我尝试时它似乎不起作用 特别是我认为因为字符串的引号阻止了脚本的
  • HTML if 语句在 CDN 失败时加载本地 JS/CSS

    当从 CDN 或任何外部服务器加载 CSS JS 文件时 有可能 即使概率很低 由于外部故障而丢失该文件 在这种情况下 html 页面将因缺乏适当的 CSS 和 JS 而被损坏 有没有一种实用的方法可以在 CDN 故障时加载本地版本 IF
  • 在openjdk:7-jre-alpine docker上如何安装python 3.6

    直到大约一周前 我才在 java 图像上成功使用 python 3 6 脚本 如下所示 FROM openjdk 7 jre alpine RUN apk update apk upgrade apk add no cache bash a
  • 如何将 MSTest 集成到 TeamCity 构建过程中

    如何在 TeamCity 中运行 MSTest 作为构建过程的一部分 有哪些陷阱 此答案专门针对 Windows 上的 TeamCity 7 1 但也可能适用于其他环境 In your TeamCity build configuratio
  • 如何将 pytest 装置与 django TestCase 一起使用

    我如何在TestCase方法 类似问题的几个答案似乎暗示我的例子应该有效 import pytest from django test import TestCase from myapp models import Category py
  • 在 MVVM 中哪里可以捕获异常?

    我的视图模型类有一个连接到服务的方法 不确定这是否是一个好的实践 或者视图模型是否应该是严格的属性和属性更改机制 当然 我想在连接或断开连接时处理任何可能的 WCF 异常 让我们使用未找到端点作为示例 考虑到这是一个我想引起用户注意的异常
  • 类型不匹配:推断类型是 PluginRegistry?但 FlutterEngine 是预期的

    我想使用 Flutter Workmanager 我在 kt 中做了引用的配置 如下所示 package com example mybackprocess import be tramckrijte workmanager Workman
  • SQlite删除内连接

    我已经阅读了很多其他答案 但无法使其正常工作 select from invTypes inner join invGroups on invtypes groupID invgroups groupID where invGroups c
  • EclipseLink 2.7.0 和 JPA API 2.2.0 - 签名不匹配

    当运行由maven构建的具有以下依赖项的项目时
  • stringFromDate 始终为 NIL

    我知道这是一个重复的问题 但是在 stackoverflow 和 google 上搜索了许多类似的问题后 没有一个解决方案对我有用 我正在尝试将从数据库收到的日期转换为字符串格式以在 iPhone 应用程序中显示 我正在按以下方式将日期转换
  • OCaml 中的用户定义打印机

    printf fprintf等 全部接受 a转换 手册上说对于 a 用户定义的打印机 采用两个参数 并将第一个参数应用于 outchan 当前输出通道 和第二个参数 因此 第一个参数的类型必须为 out channel gt b gt un
  • 按度数在圆上找到一个点?

    假设我们有一个 100x100 坐标系 如下所示 0 0 是它的左上角 50 50 是它的中心点 100 100 是它的右下角 等等 现在我们需要从中心向外画一条线 我们知道线的角度 但需要计算其终点的坐标 您认为最好的方法是什么 例如 如
  • 有时 git 告诉我每个文件都是新的且未暂存?

    我将对文件进行更改 转到 Windows UI 的 GitHub 提交我的更改 然后点击同步按钮 然后它说错误 尝试使用 shell 代替 所以我进入 shell 并输入git status 它告诉我存储库中的每个文件都是新的且未暂存 大约
  • Android EditText 不起作用,android:imeOptions="actionNext" android:inputType="phone"

    我已经尝试过了 只有删除android inputType phone 键盘回车可以跳转到下一个EditText 不知道大家之间是否有过一些冲突android imeOptions actionNext and android inputT
  • 系统错误 124 - SHFileOperation 的 ERROR_INVALID_LEVEL

    我在使用时遇到问题SHFileOperation SHFileOperation SHFILEOPSTRUCT https stackoverflow com questions 9191415 shfileoperation shfile
  • 仅当未找到文件时才重定向请求?

    我希望有一种方法可以使用 mod rewrite 和 Apache 来做到这一点 但也许还有另一种方法可以考虑 在我的网站上 我为客户的网站重新设计版本设置了目录 如果网络根目录是 home blah www 客户端目录将是 home bl