.htaccess 带括号的链接的Http访问重定向规则

mgdq6dx1  于 2022-11-16  发布在  其他
关注(0)|答案(1)|浏览(94)

我必须将诸如“example.com/example/(justsometext)/id-123“之类的url重定向到诸如“example.com/example/id-123“之类的更优雅的URL中,所以我想去掉括号。我怎样才能做到这一点呢?
谢谢!罗马诺
我到处寻找答案,但没有找到任何合适的解决办法。

zi8p0yeb

zi8p0yeb1#

您可以使用mod_rewrite在.htaccess根文件顶部附近执行类似以下操作:

RewriteEngine On

RewriteRule ^(.+)/\([^/]+\)(.*) /$1$2 [R=302,L]

(You如果文件后面已经出现了RewriteEngine指令,我就不需要重复它了。)
请注意,为了匹配正则表达式中的文字括号,它们被反斜杠转义以否定它们的特殊含义(作为 * 组 * 分隔符),即分别为\(\)
反向引用$1$2包含要删除的部分周围的URL路径部分。例如,$1包含括号部分前面的斜线(但不包括斜线)之前的所有内容。
然而,这确实做出了各种假设:

  • 在需要删除的路径段(即包含(justsometext)的路径段)* 之前 * 总是至少有一个路径段。这满足了您的示例:/example/(justsometext) .
  • justsometext可以是括在文字括号中的任何字符,但其他斜杠除外。
  • (justsometext)占据了一个完整的路径段,并以斜杠作为前缀。

相关问题