我已经回答了几十个问题,但似乎没有人能给我所需要的,希望有人能帮我.
我的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,我不希望这些URL受到这段代码的影响
https://www.example.com/this-is-static/random-words/morerandom/words-change_5-911发布于 2020-07-18 18:42:55
我假设“随机”是指任意的单词(小写字母只有any )?"32-11“也是可变的?
在这种情况下,在您的.htaccess文件顶部尝试如下所示:
RewriteEngine On
RewriteRule ^(this-is-static/[a-z]+)_([^/]+)$ /$1/$2 [R=302,L]$1反向引用匹配URL路径的第一部分,直到并包含“随机”字(不包括第一个下划线)。$2反向引用将第一个下划线之后的所有内容(不包括任何斜杠)匹配到URL-路径的末尾。
通过在第二个反向引用中排除斜杠,它自然无法匹配您不希望被重定向的URL,因为它包含更多的路径段。
更新:在“这个是静态的”之后,遇到了一个包含连字符的URLS的小麻烦.使用上面的例子,如果“随机”这个词是“随机文本”,它就不会重定向.试着编辑上面的内容,但没有结果。
您只需要在[a-z]字符类的末尾添加一个连字符,即。[a-z-] (第一个连字符表示从a到z的范围)。换言之:
RewriteRule ^(this-is-static/[a-z-]+)_([^/]+)$ /$1/$2 [R=302,L]https://stackoverflow.com/questions/62970093
复制相似问题