首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Htaccess重定向具有下划线,并将其更改为斜杠

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

Stack Overflow用户
提问于 2020-07-18 15:05:31
回答 1查看 318关注 0票数 1

我已经回答了几十个问题,但似乎没有人能给我所需要的,希望有人能帮我.

我的URL结构如下所示

代码语言:javascript
复制
https://www.example.com/this-is-static/random_text_32-11

我需要重定向到

代码语言:javascript
复制
https://www.example.com/this-is-static/random/text_32-11

所以总是在“随机”之后的下划线需要重定向到斜杠/

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

还有其他类似于下面的URL,我不希望这些URL受到这段代码的影响

代码语言:javascript
复制
https://www.example.com/this-is-static/random-words/morerandom/words-change_5-911
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-18 18:42:55

我假设“随机”是指任意的单词(小写字母只有any )?"32-11“也是可变的?

在这种情况下,在您的.htaccess文件顶部尝试如下所示:

代码语言:javascript
复制
RewriteEngine On

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

$1反向引用匹配URL路径的第一部分,直到并包含“随机”字(不包括第一个下划线)。$2反向引用将第一个下划线之后的所有内容(不包括任何斜杠)匹配到URL-路径的末尾。

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

更新:在“这个是静态的”之后,遇到了一个包含连字符的URLS的小麻烦.使用上面的例子,如果“随机”这个词是“随机文本”,它就不会重定向.试着编辑上面的内容,但没有结果。

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

代码语言:javascript
复制
RewriteRule ^(this-is-static/[a-z-]+)_([^/]+)$ /$1/$2 [R=302,L]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62970093

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档