用破折号替换所有正斜杠

时间:2015-03-13 01:23:19

标签: .htaccess mod-rewrite

SO上有一些similar questions,但没有一个适用于此特定情况。

我想使用mod_rewrite替换带有破折号的网址路径中的所有正斜杠。

因此https://stackoverflow.com/foo/bar/baz应重定向到https://stackoverflow.com/foo-bar-baz

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

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

1 个答案:

答案 0 :(得分:5)

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

RewriteEngine On
RewriteBase /

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

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

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