用破折号替换所有正斜杠

Replace all forward slashes with dashes

SO 上有一些 similar questions,但 none 适用于此特定场景。

我想用破折号替换 URL 路径中的所有正斜杠,使用 mod_rewrite

所以https://whosebug.com/foo/bar/baz should redirect to https://whosebug.com/foo-bar-baz.

路径中可以有任意数量的段(在正斜杠之间)。

我认为解决方案涉及 N flag,但我所做的每一次尝试都会导致无限循环。

您可以在根 .htaccess 中使用这 2 个规则:

RewriteEngine On
RewriteBase /

RewriteRule ^([^/]+)/([^/]+)/?$ - [NE,L,R=302]

RewriteRule ^([^/]+)/(.+)$ -

这会将 example.com/foo/bar/baz/abc/xyz/123 重定向到 example.com/foo-bar-baz-abc-xyz-123