【问题标题】:URL REWRITE with 2 dynamic variables [duplicate]带有 2 个动态变量的 URL REWRITE [重复]
【发布时间】:2023-02-25 07:36:10
【问题描述】:

我正在尝试通过 .htaccess 为 url 实现此重定向:

https://www.example.com/crt/1/02b7b273

我设置的规则是:

RewriteRule ^crt/1/02b7b273$ crt.php?id_crt=1&crc32_file=02b7b273 [L].

但是,我希望它不必为每个 URL 编写 htaccess 文件中的规则,而是自动执行它,即通过从 /1/ 中提取变量直接从 url 填充变量id_crtcrc32_file/02b7b273$

你认为这可能吗?

我希望能够直接从 URL 动态填充 id_crtcrc32_file 变量

【问题讨论】:

  • “在你看来这可能吗?”- 是的(这不是意见,而是事实 :-) 只需谷歌之类的东西。 “htaccess 重写动态值”,你应该找到很多示例)但是,我建议阅读front controller pattern并将其与router一起使用。然后您不需要为每个 URL 模式添加一堆规则到您的 htaccess(仅适用于 Apache Web 服务器),但您可以直接在您的应用程序中添加所有路由/模式。

标签: php apache .htaccess url-rewriting


【解决方案1】:

是的,你可以这样做:

RewriteRule ^crt/([0-9]+)/([a-z0-9]+)$ crt.php?id_crt=$1&crc32_file=$2 [L]

其中[0-9]+是一个模式,仅表示0到9的数字,例如:1、123、38723497234,与[a-z0-9]+相同,表示数字和字母,()表示后面使用$1$2的组.

【讨论】:

  • 非常感谢!有用!我从示例中不明白为什么要放置 $1 和 $2。我错误地认为它们是变量的示例指标。再次感谢你。
  • @gc75 如果这对您有用,请将其标记为“已接受”(投票箭头下方的灰色/绿色复选标记)以将其从未回答的问题队列中删除并帮助其他读者。谢谢。 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多