使用Htaccess重定向-URL有下划线,并将其更改为斜杠



我已经找到了几十个答案,但似乎没有一个能满足我的需求,希望有人能帮我。。。

我的URL结构看起来像这个

https://www.example.com/this-is-static/random_text_32-11

我需要重定向到

https://www.example.com/this-is-static/random/text_32-11

所以它总是在"随机";需要重定向到斜线/

下划线之后的所有内容都是动态的(random_text_32-11(

还有其他的URL看起来像下面的,我不希望那些受到这段代码的影响

https://www.example.com/this-is-static/random-words/morerandom/words-change_5-911

我假设"随机";是任何随机单词(仅小写字母a-z(?而";32-11";也是可变的?

在这种情况下,在.htaccess文件的顶部尝试以下操作:

RewriteEngine On
RewriteRule ^(this-is-static/[a-z]+)_([^/]+)$ /$1/$2 [R=302,L]

CCD_ 4反向引用与URL路径的第一部分匹配;"随机";单词(不包括第一个下划线(。$2backreference匹配第一个下划线(不包括任何斜杠(之后到URL路径末尾的所有

通过在第二个反向引用中排除斜杠,它自然无法与您不想重定向的URL匹配,因为这包含更多的路径段。

更新:我遇到了一个小问题,URLS在"这是静态的"。。。使用上面的例子;"随机";是";"随机文本";它不会重定向。。。尝试编辑以上内容,但无效

您只需要在[a-z]字符类的末尾添加一个连字符,即[a-z-](第一个连字符表示范围az(。换句话说:

RewriteRule ^(this-is-static/[a-z-]+)_([^/]+)$ /$1/$2 [R=302,L]

最新更新