我试图写一对夫妇的规则,将取决于数量的子目录的层次存在于一个网址。我有一个规则,工作的一部分,我想要的,另一个为其他部分,但原因相互冲突。
规则及其作用:
此规则将采用如下URL:website.com/base/{WILDCARD}
并将其转发到:website.com/{WILDCARD}
RewriteRule ^base/(.*)$ /$1 [L,NC,R=301]
此规则将采用如下URL:website.com/base/{WILDCARD}/{WILDCARD2}
并将其转发到:website.com/{WILDCARD2}
RewriteRule ^base/([^/]+)/(.*)$ /$2 [L,NC,R=301]
这些规则只有在URL中包含“base”时才生效
任何帮助都将不胜感激!
1条答案
按热度按时间uwopmtnx1#
您可以通过捕获URI中的最后一个路径组件来处理所有这些重定向:
验证它工作正常后,将
R=302
替换为R=301
。测试mod_rewrite
规则时,避免使用R=301
(永久重定向)。下面是一个regex demo来演示上面使用的正则表达式。