用.htaccess重写动态url结构

2024-05-22

我尝试将动态 URL(如下)重写为稍微不同的结构;要么不起作用,要么我不确定它是否正确:

  • 旧网址 (URL#1):index.php?lang=AAA&zone=BBB&city=CCC&str=DDD&search=EEE
  • 新网址 (URL#11):index.php?lang=AAA&country=BBB&place=CCC&street=DDD

*基本上更改了名称,“搜索”字符串不再重要

  • 我想要实现的是将所有访问者从(旧)动态 URL#1 重定向到(新)动态 URL#11

第二步,在所有搜索引擎显示新网址并且我们完成了所有使用非 sef 网址更容易的测试后,我们希望将 URL#11 重写为 URL#2

  • 新网址 (URL#11):index.php?lang=AAA&country=BBB&place=CCC&street=DDD
  • Sef URL (URL#2): /AAA/BBB/CCC/DDD

我对 apache 编程不是很熟悉,即使我的解决方案有效,我们也不确定它是否正确,或者它是否会在某些 URL 上生成错误。在创建执行步骤 1 重定向的 .htaccess 文件以及稍后用于 SEF url 的单独 .htaccess 文件时,我们将不胜感激。谢谢你!


http://example.com/index.php?lang=AAA&zone=BBB&city=CCC&str=DDD&search=EEE

重定向至:

http://example.com/AAA/BBB/CCC/DDD

默默地映射到:

http://example.com/index.php?lang=AAA&country=BBB&place=CCC&street=DDD

您可以在根目录中的一个 .htaccess 文件中尝试此操作:

Options +FollowSymlinks -MultiViews
RewriteEngine On
RewriteBase /

RewriteCond %{QUERY_STRING} lang=([^&]+)&zone=([^&]+)&city=([^&]+)&str=([^&]+)&search=  [NC]
RewriteRule .* /%1/%2/%3/%4?   [R=301,L,NC]

RewriteCond %{REQUEST_URI} ^/([^/]+)/([^/]+)/([^/]+)/([^/]+)/?  [NC]
RewriteCond %{REQUEST_URI} !index\.php                          [NC]
RewriteRule .* /index.php?lang=%1&country=%2&place=%3&street=%4 [L,NC]

如果查询包含以下格式的参数:%nn,尝试添加B标记这两个规则。示例:[L,NC,B]。

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

用.htaccess重写动态url结构 的相关文章

随机推荐

  • 如何安装 xCode 命令行工具?如何将 Xcode 9 beta 与 xCode 8 一起安装?

    工具可用吗 我有一个苹果开发者帐户 并且我下载了 Xcode 9 betahttps developer apple com download https developer apple com download Xcode 9 开发者工具
  • 为什么我的 UIPickerView 崩溃了?

    当我使用 UIPickerView 加载视图时出现以下错误 由于未捕获的异常 NSInvalidArgumentException 而终止应用程序 原因 NSCFNumber isEqualToString 无法识别的选择器发送到实例 0x
  • 使用 MySQL 的 CURDATE() 或 PHP 的 date() 更快?

    使用mysql查询是不是更快 SELECT CURDATE as today 或 PHP 语句 curdate date Y m d 同样的答案是否适用于使用date VS MySQL 的NOW and CURTIME 如果您只是执行查询以
  • COM多线程支持

    第一次使用COM我有这个 COM dll 比如 ABCServer dll 我创建了一个 RCW 并在我的项目中添加了对它的引用 现在 我的应用程序创建了多个线程 每个线程从 COM dll 创建某些类并使用它们 但是 当其他线程正在处理
  • Java ASN.1 编译器

    现在我正在使用二进制笔记 http bnotes sourceforge net 解析 ASN 1 文件以在 Java 项目中使用 它采用 ASN 1 定义并生成 Java 类 让我可以操作 ASN 1 文件 我用扩展标记碰壁了 因为它不支
  • 奥尔良谷物任务调用结果

    对于这个长问题我深表歉意 我一直在对奥尔良进行实验 以了解它的各种特性 这些问题在逻辑上都归为一类 第一个测试涉及客户端每 1 秒向特定 Grain 发出一次请求 而 Grain 需要 10 秒来执行请求 代码是这样的 client cod
  • 有用的 Delphi 代码模板

    我用 Delphi 编程已经两年多了 我大概只有 5 个自定义模板 我觉得我应该有更多 如果有人有任何特别有用的东西 那么在 stackoverflow 上有一个很好的存储库就太好了 我不在乎您使用的是 Delphi 2009 语法还是 D
  • Flutter 中声明式编程和命令式编程有什么区别?

    最近 我正在寻找一种方法来增强 Flutter 应用程序中屏幕之间的导航 我发现了新的编程概念 陈述性的 and 至关重要的编程 我需要了解更多关于陈述性的 and 至关重要的范例以及 Flutter 中的示例 声明式路由意味着您的应用程序
  • 使用 pip 或 conda 来管理包? [复制]

    这个问题在这里已经有答案了 我已经使用 matlab 进行机器学习很长一段时间了 最 近切换到 python 并使用其包管理器 pip 安装某些包并成功安装了许多包 几天前 我开始使用 conda 我以前安装的所有软件包都被覆盖 我真的很想
  • 用户警告:MovieWriter ffmpeg 不可用

    尝试在 google colab 上制作动画 收到此警告 用户警告 MovieWriter ffmpeg 不可用 warnings warn MovieWriter s 不可用 writer did pip 安装 ffmpeg 标准化但没有
  • 在一个查询中对同一个表进行多个 COUNT SELECT

    对于某些人来说 这可能看起来很简单 但我就是无法理解 我一遍又一遍地从同一个表中进行多个 MS SQL SELECT 查询 SELECT count Page as tAEC FROM someTable WHERE Page LIKE A
  • 访问 UserDefault 数组 URL 以填充 CollectionView

    这是上一篇文章的后续内容here https stackoverflow com questions 48142238 save and append an array in userdefaults from imagepickercon
  • 按名称显示进程的命令行

    我在cmd中使用以下命令来获取进程命令行 它提供了所有流程的详细信息 WMIC OUTPUT C ProcessList txt PROCESS get Caption Commandline Processid 我想在记事本中按名称获取特
  • 您如何在 Android 上处理超高 MP 相机(和图像)? - “画布:尝试绘制太大的位图”

    我有一个活动 用户可以像这样打开相机 getPictureUri createImageFromFile true let photoUri it openCameraActivity REQUEST IMAGE CAPTURE it ph
  • 逆向调试如何进行?

    GDB 推出了支持反向调试的新版本 请参阅http www gnu org software gdb news reversible html http www gnu org software gdb news reversible ht
  • 为什么乘法比除法便宜?

    我最近编写了一个 Vector 3 类 并将我的 normalize 函数提交给朋友审阅 他说这很好 但我应该尽可能乘以倒数 因为在 CPU 时间上 乘法比除法便宜 我的问题很简单 这是为什么 从硬件可以更轻松地实现的基本运算的角度来考虑
  • 使用 Sequelize (NodeJS) 代替 * 指定特定字段

    好吧 我在 NodeJS 中有一个项目 我正在其中使用 Sequelize 来实现 MySQL ORM 这件事工作得非常好 但是我试图弄清楚是否有一种方法可以指定在查询的基础上返回哪些字段 或者是否有一种方法可以在某处执行 query 例如
  • SQL Server 中全文搜索的奇怪行为

    我的 MyTable 带有列消息 NVARCHAR MAX ID 为 1 的记录包含消息 0123456789333444 Test 当我运行以下查询时 DECLARE Keyword NVARCHAR 100 SET Keyword 01
  • 通过shell脚本进行串口控制

    我正在开发一个方向控制器 我有一个开发板 它通过 I2C 与传感器 指南针 通信 由于主板非常有限 没有操作系统 我开发了一个简单的程序来接收以下内容 1 get 0 读取传感器的寄存器 0 2 set 0 10 将传感器的寄存器 0 设置
  • 用.htaccess重写动态url结构

    我尝试将动态 URL 如下 重写为稍微不同的结构 要么不起作用 要么我不确定它是否正确 旧网址 URL 1 index php lang AAA zone BBB city CCC str DDD search EEE 新网址 URL 11