PHP htaccess 将查询字符串从大写重定向到小写

2024-01-11

我有这个小的 php 脚本和 htaccess 中的几行,用于将带有查询字符串的 URL 从大写重定向到小写。

但是,仅当 url 文件或 url 的目录部分中有大写字符时,它才会将查询字符串中的大写字符重定向为小写字符。

大写目录示例:

domain.com/JOBS/?position=Java+Developer

将被重定向到

domain.com/jobs/?position=java+developer

目录或文件名中不包含大写字母,但仅在查询字符串中包含大写字母的示例:

domain.com/jobs/?position=Java+Developer

将被重定向到

domain.com/jobs/?position=Java+Developer

第一个示例成功将目录和查询字符串重定向为全部小写。

第二个示例没有将查询字符串重定向为小写,它保持不变。

我不知道要在代码中更改什么以使查询字符串重定向到小写,无论目录或文件名是否大写。

这是代码:

htaccess

RewriteEngine On

RewriteBase /

# force url to lowercase if upper case is found
RewriteCond %{REQUEST_URI} [A-Z]
RewriteRule (.*) rewrite-strtolower.php?rewrite-strtolower-url=$1 [QSA,L]

PHP脚本

<?php
if(isset($_GET['rewrite-strtolower-url'])) {
    $url = $_GET['rewrite-strtolower-url'];
    unset($_GET['rewrite-strtolower-url']);
    $params = http_build_query($_GET);
    if(strlen($params)) {
        $params = '?' . strtolower($params);
    }
    header('Location: http://' . $_SERVER['HTTP_HOST'] . '/' . strtolower($url) . $params, true, 301);
    exit;
}
header("HTTP/1.0 404 Not Found");
die('Unable to convert the URL to lowercase. You must supply a URL to work upon.');
?>

代替:

$params = http_build_query($_GET);

像这样使用它:

$params = strtolower ( http_build_query($_GET) );

你的 .htaccess 应该是:

RewriteEngine On
RewriteBase /

# force url to lowercase if upper case is found
RewriteCond %{REQUEST_URI} [A-Z] [OR]
RewriteCond %{QUERY_STRING} [A-Z]
RewriteRule (.*) rewrite-strtolower.php?rewrite-strtolower-url=$1 [QSA,L,NE]

因为您应该针对这两种情况调用 PHP 处理程序。

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

PHP htaccess 将查询字符串从大写重定向到小写 的相关文章

  • Smarty输出空白页

    已解决 模板文件错误 我有这样的 Smarty 设置 require once smarty Smarty class php smarty new Smarty smarty gt compile dir compile dir smar
  • 如何复制 ArrayIterator 以保留其当前迭代位置?

    因为这似乎是我必须做的才能达到这种效果 arr a gt first b gt second iter new ArrayIterator arr Do a bunch of iterations iter gt next new iter
  • WooCommerce 使用 AJAX 设置购物车数量?

    我已经为此绞尽脑汁好几天了 需要一些指导 我正在为 WooCommerce 网站完全从头开始制作自定义主题 现在我正在尝试让购物车功能正常工作 我一直试图使用按钮 来更新购物车中产品的数量 对我来说问题似乎是WC 我在functions p
  • 通过 __get() 通过引用返回 null

    快速规格 PHP 5 3 error reporting 1 the highest 我正在使用 get 通过引用技巧神奇地访问对象中任意深度的数组元素 快速示例 public function get key return isset t
  • 在值中包含换行符

    我有一个 Word 模板 其中 php 代码中定义了值 在PHP代码中 document gt setValue Value1 value1 在word模板中 Value1 如何将包含两个值之间的断线的值包含在单词的值中 Replace n
  • Apache 从子域重写为 www 但保留所有永久链接

    我已经研究了大约 2 个小时 虽然大多数主题都很相似 但没有一个解释如何做我想做的事情 我正在将一个结构为 blog domain com 的博客移至 www domain com blog 当我重定向时 我需要保留博客文章的永久链接 所以
  • 从 octobercms 中的非 ajax 表单获取输入值

    我正在尝试构建一个简单的搜索功能 下面是我的搜索表格
  • Yii2 异常:ApcCache 需要加载 PHP apc 扩展

    在高级模板前端的主配置中配置缓存组件时 我收到异常 在我的 php ini 上启用了扩展 rsults 如何解决此问题 前端 config main php cache gt class gt yii caching ApcCache ke
  • PHP 或 WAMP 不确定是什么

    我已经安装了 WAMP 服务器 2 0 PHP 5 4 3 安装WAMP后我已经重新启动了所有服务并且可以打开 phpinfo 显示良好 phpmyadmin 它也显示得很好 我可以使用数据库 然而 当在 Chrome 中运行简单的 php
  • zip 文件的校验和

    我目前正在开发一个工具 它上传一组文件 然后使用 md5 校验和将文件与上一批上传的文件进行比较 并告诉您哪些文件已更改 对于常规文件 这工作正常 但某些上传的文件是 zip 存档 即使其中的文件相同 它们几乎总是会发生变化 有没有一种方法
  • 在字符串中间添加一个字符

    可能有一个简单的解决方案可以解决这个问题 但会引起面部表情 我将时间存储为 4 个字符长的字符串 即 1300 我试图将该字符串显示为 13 00 我觉得必须有一个比我现在正在做的更优雅的解决方案 我目前有 startTime get fi
  • 第三个下拉菜单不从数据库填充

    我有以下 Index php
  • 强制 Apache HTTPD 以 32 位运行

    我通过从二进制文件 以及 ppc 部分 中剥离 32 位架构 以 64 位模式运行 Apache HTTPD 我这样做是为了使其与 python 和 mysql 更加兼容 然而 我有另一台机器需要它以 32 位模式运行 它仍然保留所有四种原
  • PHP Solr PECL 扩展安装

    我已经使用命令安装了 pecl solr pecl install solr 和梨使用 wget http pear php net go pear phar php go pear phar 重启Apache后 我仍然收到错误 Fatal
  • 使用 XSLT 将 XML 转换为 SQL

    由于我无法控制的原因 我将获得一个 XML 文件和一个 XSLT 文件 该文件可以将 XML 文件转换为 SQL 代码或错误 现在让我们假设我们可以信任提供 XML 文件的人不会在 XML 中包含危险的构造 我什至不知道是否应该使用 Sim
  • 使用 PHP 的 MySQL 连接字符串

    我正在尝试通过本地计算机连接到托管在我的服务器上的数据库 我的服务器有cPanel 11 它是一个典型的共享服务器 由CentOS提供支持 安装了PHP和MySQL 准确地说 我在同一台服务器上持有经销商帐户 我想在不同帐户或域之间访问数据
  • Sonata DateTimePickerType 类默认日期显示错误的日期时间格式

    我陷入困境 我不知道如何使用 sonata DateTimePickerType 类正确设置默认日期和时间 我尝试了不同的方法 但到目前为止 没有一种方法没有帮助 在下面的截图中 help 键显示正确的日期和时间 但是当我使用 dp 默认日
  • MVC 模式中的验证层

    验证模型将使用的数据的最佳位置在哪里 例如 考虑登记表 我们有一些来自注册表的数据 那么验证这些数据的最佳位置在哪里 我们应该通过 if 语句或特殊的验证器类来检查每个数据 这意味着大量的编码 所以我想了解在哪里可以做到这一点 在控制器中
  • 如何使用 PHP 对字符串进行 rot13 处理?

    我有一个很大的 php 代码 我想手动对其进行编码和解码 我的问题是 php 代码里面有很多单引号和双引号 因此我在使用时出现错误str rot13 功能如下 那么正确的语法是什么以及如何使用下面的函数进行编码 str rot13 That
  • 从 PHP 数组生成 HTML 表

    我不明白这一点 我需要解决看似简单的问题 但这超出了我的逻辑 我需要编写一个函数 table columns input cols 它将输出一个表 示例 input array apple orange monkey potato chee

随机推荐

  • MapKit 显示整个地球

    我正在尝试在 MKMapView 中绘制整个地球仪 通过捏合缩小 我只能缩小到一定程度 我希望能够缩小到这个级别以上 以在地图上显示整个地球 这似乎不是很困难 但我一直找不到任何解决方案 里面的地图MKMapView不会在侧面重复 因此您无
  • 将 CSV 文件的内容加载到数组而不打开文件[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我需要将 6000 多个 csv 文件整理成一个 csv 文档 目前的VBA流程是 1 打开单独的CSV数据文件 2 根据行数将文件内
  • 如何在 Chutzpah 的无头浏览器中使用 templateUrl 测试指令

    有谁知道如何让像 Chutzpah 的 Visual Studio 测试适配器这样的无头浏览器允许指令访问其 html 模板文件 Chutzpah 使用 PhantomJS 作为无头浏览器 这似乎限制了我的选择 我正在使用 Chutzpah
  • azure apim中的JWT验证失败错误

    我目前正在尝试使用以下文档实施 Oauth2 0 来保护 API https learn microsoft com en us azure api management api management howto protect backe
  • 您在实体框架中发现的最烦人的功能(或缺乏功能)是什么?

    我从实体框架开始 听起来不错 但我想知道我是否应该留意某个地方的弱点 那里有什么经验吗 您可能需要开始在这些问题前加上您正在讨论的版本的前缀 NET 4 0 即将发布的版本中已经修复了大量的烦恼 这是我在使用第一个版本大约 6 个月后在 s
  • 当触发新管道时取消之前的管道 GitHub Actions

    我遇到了拦截器 我确信其他人一定也遇到过这个问题 所以只需检查是否有任何解决方法 这是一个 Github 工作流程示例 name Test Build on pull request types opened synchronize reo
  • Flutter 能否消除使用 Mac 创建 IOS 应用程序的需要?

    所以我想构建 Android 和 IOS 应用程序 有一天我发现了 flutter 我知道 IOS 需要 MacOS 但 flutter 可以在 Windows 上运行 我的问题是 我可以使用flutter在Windows计算机上开发和发布
  • 文件存在时 os.rename 不会引发 FileExistsError

    我有一个file rename我想通过一个简单的改进机制try except块将检查重命名的文件是否已存在于目录中 我在我的目录中准备了2个文件 data txt and old data txt 函数应该抛出异常 如下所示old data
  • LoadLibraryW() 无法加载 System32 中的 DLL

    我尝试使用以下代码加载 C Windows System32 文件夹中与打印机驱动程序一起安装的 DLL LoadLibraryW L C Windows System32 MagAPI dll GetLastError 报告 找不到指定的
  • 在没有 cron 的情况下在 AWS 中运行计划任务

    目前我在亚马逊有一台服务器 我把所有的 cronjobs 都放在里面 我想消除这个单点故障 并将所有任务公开为 Web 服务 我想将 VPC ELB 背后的服务公开给一些服务器 这些服务器将在调用时运行任务 Amazon AWS 是否提供某
  • 在驱动程序安装期间重新扫描设备树以了解硬件更改

    我在用着安装盾安装我的应用程序 驱动程序和服务 仅当在设备管理器中找到其硬件 ID 时 我才需要安装即插即用驱动程序 驱动程序安装是使用 DPInst exe 完成的 我的问题是 用户有时可以手动卸载驱动程序 安装后甚至卸载驱动程序 未知司
  • 在Http get请求上调用Https url

    我有一个https 网址并希望发送请求以从该 URL 获取数据 场景 1 从我的浏览器如果我点击 Url 我会得到响应 而从我的 Angularjs 应用程序我总是得到错误 401 但如果我从浏览器点击 Api 我总是得到正确的响应 出于安
  • Python-停止 FuncAnimation

    有谁知道停止 FuncAnimation 的首选方法 我正在使用它来记录示波器中的数据 并且希望能够按需暂停和重新启动数据 有什么方法可以向其发送按钮单击事件吗 谢谢 德里克 The FuncAnimation是一个子类TimedAnima
  • 将一个类中的值绑定到另一类中的另一个值

    我有以下课程课程要点 https gist github com anonymous 9306399 我想将 Item Visible 绑定到 Items ItemsVisible 可能吗 如果可以 如何 Item cs using Sys
  • 应如何处理变量扩展产生的反斜杠?

    我运行了以下命令 sh是一个名字sh实现 以及我能找到的所有 shell 虽然我期待所有的打印match 我得到了不一致的结果 我不知道哪种行为是正确的 可靠的 sh c case 1 in 2 echo match esac f oo f
  • Rails - 包括与动态条件的关联

    给定一个学校模型和一个学生模型 其中学校与学生有 has many 关系 has many students conditions gt proc year id send active year id 其中 active year id
  • 使用 ffmpeg 从 rtsp 源每 5 或 10 分钟截屏一次

    你好 我尝试制作脚本 每 5 或 10 分钟从 ip 摄像头获取屏幕截图 这个脚本可以工作 ffmpeg rtsp transport tcp i SOURCE vf fps fps 1 20 update 1 picture1 jpg 但
  • gnuplot 热图颜色范围

    我的文件中有一些 X Y Z 数据 我正在使用 gnuplot 来显示它 我正在创建一个热图 即 使用颜色呈现 Z 值的 2D 图 现在我正在使用以下脚本 set palette defined 0 blue 1 red plot xyz
  • Oracle:在更新一个字段时复制行

    请注意 我am问我想要回答的问题 我知道这个问题意味着数据库设置得不好 因此 我将否决任何建议更改表格设置方式的答案 我需要复制一堆行 同时更改一个值 name col1 col2 dave a nil sue b nil sam c 5
  • PHP htaccess 将查询字符串从大写重定向到小写

    我有这个小的 php 脚本和 htaccess 中的几行 用于将带有查询字符串的 URL 从大写重定向到小写 但是 仅当 url 文件或 url 的目录部分中有大写字符时 它才会将查询字符串中的大写字符重定向为小写字符 大写目录示例 dom