以下.htaccess
规则将OLDNAME
更改为NEWNAME
,并从URL末尾删除字符串-2
(如果存在)。
RewriteRule ^OLDNAME/(.+?)(?:-2)?/?$ /NEWNAME/$1 [L,NC,R=302,NE]
这条规则是由@anubhava在这篇文章(How to use htaccess to change a folder name and remove a string from the end of a URL)中编写的,它在以下URL上运行良好。
https://example.com/OLDNAME/item/a-long-file-name-separated-by-hyphens-2
https://example.com/OLDNAME/item/a-long-file-name-separated-by-hyphens
在深入研究这个问题时,我发现如果URL包含index.php
,则会导致此规则失败。
https://example.com/index.php/OLDNAME/item/a-long-file-name-separated-by-hyphens-2
https://example.com/index.php/OLDNAME/item/a-long-file-name-separated-by-hyphens
我尝试过修改规则以包含index.php
,但语法还不正确。
重写规则^索引. php/旧名称/(.+?)(?:-2)?/?$/新名称/$1 [左侧,北卡罗来纳州,右侧= 302,东北]
任何帮助都很感激。
1条答案
按热度按时间j0pj023g1#
这个规则对我很有效。现在,index.php可以出现在URL中,也可以不出现。