在 URL 和 .htaccess 中使用空格

2023-12-13

我为我的城市编写了一个本地名称/电话/地址搜索引擎。

用户必须能够通过访问以下任一 URL 来快速访问结果:

  1. search by number
    • http://domain.com/5554651
  2. search by lastname
    • http://domain.com/smith
    • http://domain.com/smith%20johnson
  3. search by lastname and first name
    • http://domain.com/smith/andrew
    • http://domain.com/smith%20johnson/mary%20elizabeth

这是我当前的 .htaccess 配置:

# Smart links
RewriteRule ^([0-9]+)$ /html/index.php?phone=$1 [QSA,L]
RewriteRule ^([A-Za-z-]+)$ /html/index.php?lastname=$1 [QSA,L]
RewriteRule ^([A-Za-z-]+)/([A-Za-z-]+)$ /html/index.php?lastname=$1&name=$2 [QSA,L]

除非用户在姓氏和/或名字中包含空格,否则效果非常好。此外,搜索姓名时不能使用数字。

关于如何在 url 中允许空格有什么想法吗?谢谢!


你能试试这个吗?([a-z-\s]+)

RewriteRule ^([0-9]+)$ /html/index.php?phone=$1 [QSA,L]
RewriteRule ^([A-Za-z-\s]+)$ /html/index.php?lastname=$1 [QSA,L]
RewriteRule ^([A-Za-z-\s]+)/([A-Za-z-\s]+)$ /html/index.php?lastname=$1&name=$2 [QSA,L]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 URL 和 .htaccess 中使用空格 的相关文章

随机推荐

  • 将背景放在线性布局上并占据几乎 3/4 的屏幕

    我已经尝试了其他帖子的各种帮助 将宽度设置为 0dp 等 但似乎没有任何效果 我有两种布局 第一个似乎仍然占主导地位 如果我在文本视图上放置背景颜色 它们就会表现出自己的行为并正确结束 然而 在线性布局上放置一个背景 它几乎占了屏幕的 3
  • 使用 PHP 将 .key 文件从 DER 格式加载到 PEM

    我有一个进行转换的代码 但需要使用本机 PHP 函数来完成它 因为它没有激活对运行 exec 的支持 exec openssl pkcs8 inform DER in archivo key out archivo key pem pass
  • 如何轻松地在 pubspec.yaml 中添加 100 多个手动图像?

    我需要在我的应用程序中添加大量图像 并计划让应用程序保持离线状态 写 assets image1 jpg 让人心痛 我是flutter新手 不知道还有没有其他方法 有没有 要包含资产 flutter assets assets my ico
  • HTTP 缓存控制

    我正在为此苦苦挣扎 在 PHP 中 我为 GET AJAX 调用执行此操作 header Cache Control max age 10000 private 此后浏览器仍然能够发出请求吗 为什么 header Expires gmdat
  • 更改 AlertDialog 中超链接的颜色

    通常情况下 这种行为并不严重 但在 Samsung Galaxy S 上 默认的 AlertDialog 背景为蓝色 并且正常格式的链接 蓝色 消失 不幸的是 下面的代码不会改变链接的颜色 有人有想法吗 public void showCl
  • SQL 按日期分组,但也获取不带记录的日期

    有没有一种简单的方法可以做到GROUP BY DATE timestamp 包括一段时间内的所有日期 无论是否有与该日期相关的任何记录 基本上 我需要生成这样的报告 24 Dec 0 orders 23 Dec 10 orders 22 D
  • 以编程方式设置 CKEditor 对话框的位置

    我正在尝试找到一种方法 以便在打开新对话框时以编程方式设置 CKEditor 对话框的位置 位置部分的实际设置似乎很简单 但我似乎无法弄清楚如何捕获正在创建和显示的新 CKEditor 对话框的事件 我假设这将是类似的事情 CKEDITOR
  • 在 haskell 中按所选字符分割字符串

    我试图在每次选择字符时分割一个字符串 所以如果我收到 1 2 3 4 5 我选择的角色是 结果是一个列表 例如 1 2 3 4 5 我一直在浏览这里已经回答的问题 他们指出我使用splitOn 然而 当我尝试import Data List
  • 仅当用户选择时才使用 Inno Setup 下载文件

    问题 我想知道如何编写脚本来下载第二个 zip 文件 但最初在两个 zip 文件之间进行选择 下载 解压并删除 zip 文件 每个 zip 文件具有不同的名称 但内容与 zip 文件具有不同的名称 每个名称相同 无需重命名 这个问题有点类似
  • 由于内存限制,串行json_decode

    我有一个很大的 json 文件 7 3MB 我尝试对其进行 json decode 但由于内存限制而失败 致命错误 允许的内存大小 134217728 字节耗尽 有没有一种方法可以一次使用一个对象 节点串行解码 json 文件 我想理论上你
  • “no-ansi”选项不存在

    我正在尝试在 Windows 上创建 laravel 项目 但这个问题向我展示并且我尝试更新作曲家 php版本是8 0 6 作曲家版本是2 0 14 laravel 版本是 4 2 5 根据对此的评论Github问题这是最新版本的 Symf
  • 检查所选文件是否与 标记上的接受属性匹配

    我希望防止用户上传服务器会从包含最少 JavaScript 的页面拒绝的文件 最好不要添加任何严重的依赖项 例如纯粹为了解决这一问题的 jQuery 由于我不是针对旧用户 因此我使用浏览器的表单验证系统来检查用户是否选择了有效文件 但它似乎
  • PhoneGap (Cordova.js) 和 JQuery.Ajax 不能一起工作

    我已经使用 Phonegap Jquery 构建了一个针对 Andriod 4 12 的 html 页面 我的业务需求是使用 cordova js 的相机 API 拍照 然后将捕获的图片发布到 ASMX Web 服务 问题 当我添加对 Co
  • 半透明物体渲染顺序

    渲染半透明对象时 使用 glBlend 建议按 z 顺序从后到前对对象进行排序 From opengl 文档 在应用程序中使用深度缓冲时 您需要注意渲染图元的顺序 需要首先渲染完全不透明的图元 然后按从后到前的顺序渲染部分不透明的图元 如果
  • 在 iPhone 中创建二维码

    我看过一些示例代码 这些代码正在从文本创建二维码 下面是代码 我们也可以从其他数据 如图像 生成二维码吗 NSString code 1001012023034 Barcode barcode Barcode alloc init self
  • 在Java中为数字添加前导零? [复制]

    这个问题在这里已经有答案了 有没有更好的方法来获得这个结果 如果 num 的位数多于位数 则此函数会失败 并且我觉得它应该在库中的某个地方 例如 Integer toString x 3d 或其他东西 static String intTo
  • 获取与 Windows 中的任务管理器相同的进程详细信息

    我编写了一个程序来获取当前正在运行的进程的内存详细信息psutil在Python 3中 问题是我得到的值与Windows任务管理器中的值不同 具体来说 如何在Python中获取进程的私有工作集大小 psutil 调用GetProcessMe
  • 如何制作或使用 WP7 的标准图像查看器

    我想做一个显示图片的应用程序 但我希望能够通过手势来放大和缩小 我通过在我的项目中包含一个工具包来解决这个问题 但我真正的问题是 我可以使用或者是否有一个已经为我创建的控件来显示图片 例如 WP7 手机本身的图片库 我以为没有 但 Face
  • Ansible 抛出“无法更新 apt 缓存:W:无法安全地从此类存储库更新”错误

    我对 Ansible 非常陌生 我正在尝试在 EC2 实例 Ubuntu 18 04 上安装 kubectl 来上课 我已经运行了剧本 一切进展顺利 直到遇到任务 4 然后抛出以下错误 致命 localhost 失败 gt changed
  • 在 URL 和 .htaccess 中使用空格

    我为我的城市编写了一个本地名称 电话 地址搜索引擎 用户必须能够通过访问以下任一 URL 来快速访问结果 search by number http domain com 5554651 search by lastname http do