我如何修改这个.htaccess规则,使它能够适应两种情况?

jogvjijk  于 2023-03-09  发布在  其他
关注(0)|答案(2)|浏览(158)

下面的. htaccess规则将URL中的"OLDNAME"替换为"NEWNAME",并删除URL末尾的字符串"-2"(如果存在)。我需要更新该规则以适应两种情况:"旧名称1"和"旧名称2"。两者都重定向到单个"新名称"。

RewriteRule ^(index\.php/)?OLDNAME/(.+?)(?:-2)?/?$ /NEWNAME/$2 [L,NC,R=302,NE]

我尝试了以下几种方法:

RewriteRule ^(index\.php/)?(OLDNAME1|OLDNAME2)/(.+?)(?:-2)?/?$ /NEWNAME/$2 [L,NC,R=302,NE]

任何帮助都感激不尽。

0ejtzxu1

0ejtzxu11#

你已经很接近了,你可以这样做:

# /nwblog => /blog
RewriteRule ^(?:index\.php/)?nwblog/(.+?)(?:-2)?/?$ /blog/$1 [L,NC,R=302,NE]

# remove /index.php/
RewriteRule ^index\.php/(.+)$ /$1 [L,NC,R=302,NE]

# remove /-2
RewriteRule ^(.+)-2/?$ /$1 [L,NC,R=302,NE]
ftf50wuq

ftf50wuq2#

与您显示的样本,请尝试以下。htaccess规则文件。我们需要使用THE_REQUEST变量在这里,也确保清除您的浏览器缓存之前,测试您的网址。

RewriteEngine ON
RewriteCond %{THE_REQUEST} \s/?index\.php/?\?(?:OLDNAME[12])(.+?)(?:-2)\s [NC]
RewriteRule ^ /NEWNAME/%1? [R=301,L]

相关问题