重写条件以比较 Request_URI 中的顶级目录

2023-12-01

我的网站上有几个客户,每个客户的网站设置基本相似。这些客户帐户的文件夹是出于组织目的而设置的,位于:

mydomain.com/client/sampleclient
mydomain.com/client/anotherclient

etc.

我希望他们能够简单地通过 /sampleclient 或 /anotherclient 访问他们的内容。为了实现这一点,我已将此规则添加到我的根 .htaccess 中(感谢保罗·斯特凡):

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/client/%{REQUEST_URI} -d
RewriteRule ^(.*)$ /client/$1 [L,QSA]

这在重定向根目录方面效果很好。 IE,mydomain.com/sampleclient 完美重定向到 mydomain.com/client/sampleclient。但是,它不适用于客户端目录中的请求。就像是:

mydomain.com/sampleclient/orders

检查 client/sampleclient/orders 是否为目录,但事实并非如此(我在客户端目录中使用单独的 url 重写),因此不应用该规则。有没有办法将正则表达式应用于 REQUEST_URI 或其他内容,以便我在应用规则之前只检查 request_uri 的顶级目录是否存在?


RewriteCond可以将匹配的一部分作为其第一个参数,因此您可以使用

RewriteCond %{DOCUMENT_ROOT}/client/$1 -d
RewriteRule ^(.+?)/(.*)$ /client/$1/$2 [L,QSA]

Apache 将检查 %{REQUEST_URI} 是否启动(^) 具有非零长度的目录名称后跟斜杠,那么它将使用第一个匹配项来查看该名称的目录是否存在%{DOCUMENT_ROOT}/client/。如果是这样,重写规则将应用斜杠后面的任何内容(甚至什么都不应用)。

例如。如果用户请求该页面

mydomain.com/sampleclient/orders

Apache 将检查是否%{DOCUMENT_ROOT}/client/sampleclient存在并且是一个目录,如果存在,则会加载

mydomain.com/client/sampleclient/orders

一般情况下会加载mydomain.com/client/sampleclient/[第一个斜线之后的内容].

如果您不需要加载它mydomain.com/client/sampleclient/orders并希望在其中应用重写规则sampleclient目录、使用

RewriteRule ^(.+?)/(.*)$ /client/$1/ [QSA]

也就是说,删除$2来自替换字符串,以及L方括号内的标志。

也可以看看这些 Apache 文档了解更多信息。

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

重写条件以比较 Request_URI 中的顶级目录 的相关文章

  • cakephp 无法在 Ubuntu 上进行 url 重写

    全部 这次我尝试 cakephp 但我得到了 您的服务器上的 URL 重写未正确配置 1 帮我配置它 2 我不 不能使用 URL 重写 我可以知道这是 apache 和 htaccess 问题 例如 etc apache2 sites av
  • PHP设置全局环境变量的方法

    我已阅读问题 答案here https stackoverflow com questions 13568191 how to get system environment variables into php while running
  • 配置tomat的server.xml文件并自动生成mod_jk.conf

    我在用apache 2 2 15 and tomcat6 6 0 24 on CentOS 6 4并希望使用 tomcat 服务器的功能 通过添加以下内容自动生成 mod jk conf 文件
  • 在 .htaccess 中更改什么以使其停止显示子域

    我有这个 RewriteEngine on RewriteCond HTTP HOST m myurlname com RewriteCond HTTP USER AGENT safa NC RewriteRule http m myurl
  • 从 Django 运行 shell 命令

    我正在 Django 中开发一个网页 使用 apache 服务器 需要调用 shell 命令来启用 禁用一些守护进程 我尝试这样做 os system service httpd restart 1 gt HOME out 2 gt HOM
  • Apache 访问 Linux 中的 NTFS 链接文件夹

    在 Debian jessie 中使用 Apache2 PHP 当我想在 Apache 的文档文件夹 var www 中创建一个新的小节时 我只需创建一个指向我的 php 文件所在的外部文件夹的链接 然后只需更改该文件夹的所有者和权限文件夹
  • 使用 URL 参数 ID 编号范围进行 HTACCESS 重定向

    我希望有人可以提供帮助 因为事实证明这很难弄清楚 我试图通过 HTACCESS 和 mod rewrite 重定向许多 URL 参数 ID 值在特定范围内 从 1 到 7603 的页面 这是我到目前为止所拥有的
  • “yum install php”需要 httpd-mmn = 20051115

    我从源代码安装了 httpd apache 2 4 6 现在我想安装 PHP 但yum install php吐出错误 Error Package php 5 3 3 40 el6 6 x86 64 updates Requires htt
  • 安装solr并索引mysql

    任何人都可以帮助我安装 solr 并将其配置到 mysql 表 我已经尝试了几乎所有教程 我尝试了 Jetty 也尝试了 tomcat 仍然收到诸如数据处理程序未定义或找不到 solr 之类的错误 已经一周了 我我一整天都在努力 为了让 s
  • XAMPP Windows Apache VirtualHost 403 禁止

    我的 XAMPP 在我的 winodws 8 机器上与虚拟主机一起运行良好 直到我被迫重新启动计算机 Windows 更新 重新启动后 我发现我的虚拟主机不再工作 为了避免解决太多问题 我决定重新安装 XAMPP 当前正在运行 XAMPP
  • 如何检测linux机器上是否安装了tomcat和ant

    我正在尝试安装Tomcat and Ant在我的 Linux 机器上 但在安装它们之前我只需要检查它们是否已经安装 关于Tomcat 我用谷歌搜索了很多 并在我的机器上的以下目录中搜索了 tomcat usr local opt usr s
  • 使用 uWSGI 部署 Pylon

    我们正在尝试将我们的内联网迁移到 Pylons 我的老板正在尝试设置 Pylons 以在 Apache 后面使用 uWSGI 以便他可以设置多个独立的应用程序 然而 他在设置方面遇到了困难 uWSGI 的 C 源代码中存在一些明显的代码问题
  • 2 个 Codeigniter 安装在同一台服务器上,并带有子文件夹

    我有以下场景 一个 Codeigniter 网站 我们称之为WebA 安装在sebserver 的根目录下 从域访问 www example com 另一个 Codeigniter 网站 我们称之为WebB 安装在同一 Web 服务器的子文
  • 在 AWS elastic beanstalk 上安装 HTTPS SSL 的过程?

    我已成功安装自我认证的 SSL 以使 https 在 AWS linux EC2 上运行 然后 我在自动缩放和负载平衡环境中的弹性豆茎上尝试它 但我失败了 我所做的过程是首先启动一个新的弹性豆茎应用程序 我生成 SSL 证书的私钥和自认证公
  • “child pid 10708 exit signal Segmentation failure (11)”错误的根本原因是什么?

    我越来越child pid 10708 exit signal Segmentation fault 11 错误 其根本原因是什么以及如何解决 php ini 内存与此有关吗 我正在使用带有 php 的 apache2 服务器 提前致谢 完
  • htaccess 文件中的动态重写

    我正在我的 htaccess 文件中进行一些重写和重定向 我这样做的原因是因为我正在为现有网站开发新的设计和布局 因此我需要重定向以保持谷歌排名等 所以旧的 现有的 URL 看起来像这样 news internet shopper numb
  • 如何让 Apache 知道针对不同域使用哪个应用程序目录?

    我正在尝试使用 CodeIgniter 创建一个网站 我将从该服务器提供多个域 我想做的是将 www example1 com 的 HTTP 请求与 www example2 com 的 HTTP 请求分开 然后将它们重定向到正确的应用程序
  • 如何修复 Apache mod_wsgi 的 Python 版本不匹配问题?

    我收到此错误 Thu Jul 12 14 31 36 2012 error python init Python version mismatch expected 2 6 7 found 2 6 8 当尝试启动 Apache 服务器时 在
  • Apache 服务器上的服务器端 Javascript

    我们打算使用Apache https httpd apache org 用于 Web 开发的服务器 对于服务器端脚本 我们希望使用服务器端 javascript 要使服务器端 javascript 在 Apache 服务器上工作需要什么 S
  • VirtualHost 在 Ubuntu 14.04 上始终返回 Apache 的默认主机

    我尝试设置默认虚拟主机之外的虚拟主机localhost 每当我尝试呼叫我的虚拟主机时http test我得到了位于目录中的默认 Apache2 索引文件http localhost 此外 apache 在禁用后仍然返回此页面 a2dissi

随机推荐

  • 为什么抽象类“DocumentBuilderFactory”允许实例化新实例

    最近 我一直在使用 XML 解析器 这对我来说才刚刚开始 我设法理解如何在 java 中使用 DOM 解析器类 即DocumentBuilderFactory and DocumentBuilder解析 XML 文档 DocumentBui
  • 使用 mod_rewrite 强制 SSL/HTTPS [重复]

    这个问题在这里已经有答案了 我有一个 Zend Framework 应用程序 我想使用 mod rewrite 将其强制转换为 HTTPS 当谈到 mod rewrite 时我非常迷失 这是我的应用程序根目录中当前的 htaccess 文件
  • 实体类型 MVC5 EF6 中的用户

    我在 MVC5 中创建了一个类 我想要一个内容的主要所有者 然后我想要一些内容编辑器 public class Content public int ID get set public IdentityUser Owner get set
  • Android Espresso:在按住按钮时进行断言

    我对 Android 上的 Espresso 很陌生 遇到了以下问题 我希望 Espresso 在按钮上执行长按 或其他操作 并且在按住按钮的同时 我想检查不同视图的状态 在 或多或少 伪代码中 onView withId button i
  • 在 Qt 中将 QString 转换为 Ascii 值,反之亦然

    我有一个QString StrData abcd 我想要得到Ascii该字符串的十六进制值 反之亦然 例如来自 abcd to 61 62 63 64 和来自 61 62 63 64 to abcd 我设法获得十六进制的 Ascii 值 但
  • 使用 Qt 依赖项并使用 c++11 编译适用于 iOS 的 c++(clang) 项目时出现编译错误“没有名为 std::u16string 的类型”

    我正在尝试使用适用于 iOS 的 clang 构建一个依赖于 Qt 的 C 库 我的编译命令是这样的 xcrun sdk iphoneos8 4 clang Iinclude I Users ls projects prompt files
  • 如何在 JavaScript 中使用模运算符 (%)? [复制]

    这个问题在这里已经有答案了 如何在 JavaScript 项目的数字计算中使用模运算符 这是余数运算符和 用于获得整数除法后的余数 很多语言都有它 例如 10 3 1 because 3 3 gets you 9 and 10 9 is 1
  • Fortran 命令行输入规范部分

    我是 Fortran 新手 在尝试通过命令行传递参数时遇到问题 例如我的工作代码有以下几行 experimental parameters real kind 8 parameter rhot 1 2456 density of top f
  • 如何在android中裁剪解析后的图像?

    我正在解析一个网站以显示 URL 中的内容 其中有一些图像 我想裁剪从网站解析的图像 我真的很苦恼 有人可以帮我解决这个问题吗 我假设您已经从网站上 获取 了图像并且想要调整大小而不是裁剪 IE 创建缩略图 如果是这样 您可以使用以下方法
  • gdb 符号不加载

    我尝试使用 gdb 和 gdbserver 远程调试程序 我使用 ssh 登录远程 PC 并运行gdbserver multi 4444在我的本地 我使用命令 arm linux gnueabihf gdb x path init其中的内容
  • 比较两个数据帧并过滤匹配的值

    上一个问题 Pandas 比较两个数据帧并确定匹配的值 我有两个数据框 print a ID Value 0 AA12 101 BB101 CC01 DD06 1 1 AA12 101 BB101 CC01 DD06 2 2 AA11 10
  • 如何在 Swing 中更新 JComboBox 实例?

    我有 3 个组合框 选择第一个组合框后 其余的应该更新 但我的代码似乎不起作用 请大家帮忙 这是我的代码 因为我的代码很长 所以我只写错误部分 example code public class GuiComponents JComboBo
  • 程序的一个实例“发生 JNI 错误”,而另一个实例则不然

    我在一台计算机上用 Eclipse Java Mars 编写了一个大型程序 运行良好 我将该程序导出为可运行的 Jar 文件并运行它没有出现任何问题 即使我将整个项目导出到另一台计算机 该程序仍然可以运行 当我对项目进行微小更改时 另一台计
  • 关于 Rust HashMap 和 String 借用的困惑

    该程序接受一个整数 N 后接 N 行 其中包含两个以空格分隔的字符串 我想将这些行放入HashMap使用第一个字符串作为键 第二个字符串作为值 use std collections HashMap use std io fn main l
  • 从 WordPress 全局搜索结果中排除 woocommerce 产品类别

    我使用此代码从 wordpress 搜索结果中排除某些帖子类别 function SearchFilter query if query gt is search query gt set cat 709 710 614 return qu
  • 我最多可以更改按钮的背景多少次?

    所以 我试图用我传递的颜色和白色之间的颜色来闪烁按钮 在代码崩溃后 它似乎只闪烁了很多次 我尝试过以不同的闪烁速率来实现闪烁 并且它 它有时还会破裂吗 在 a 中 我有类似 Background color rgb 255 0 0 的字符串
  • 如何将emacsclient背景设置为Emacs背景?

    我有 在我的 emacs 中 set background color 101416 set foreground color f6f3e8 我有 2 个绑定 alias ex emacsclient nw alias ec emacscl
  • 转储 Spring 启动配置

    我们的运维人员希望在应用程序启动时将 Spring boot 配置 即所有属性 转储到日志文件中 我认为这可以通过使用注释 ConfigurationProperties 注入属性并打印它们来完成 问题是是否有更好的或内置的机制来实现这一目
  • 创建 Sql Server 身份验证帐户?

    我想创建一个Sql Server身份验证帐户 而不是数据库或帐户中的用户 我的意思是我想创建一个帐户 以便在启动 sql 服务器时使用 SQL 事务或使用 C 从中登录 据我所知 您只能使用两种模式 Windows 或 SQL Server
  • 重写条件以比较 Request_URI 中的顶级目录

    我的网站上有几个客户 每个客户的网站设置基本相似 这些客户帐户的文件夹是出于组织目的而设置的 位于 mydomain com client sampleclient mydomain com client anotherclient etc