.htaccess重新提取模式问题

.htaccess重新提取模式问题,.htaccess,url-rewriting,.htaccess,Url Rewriting,我有一组文件要重定向到另一组文件 文件和重定向文件的示例列表 http://www.example.com/test-1-constant/ > http://www.example.com/test-constant-1/ http://www.example.com/test-2-constant/ > http://www.example.com/test-constant-2/ http://www.example.com/test-3-constant/ &

我有一组文件要重定向到另一组文件

文件和重定向文件的示例列表

http://www.example.com/test-1-constant/   >  http://www.example.com/test-constant-1/
http://www.example.com/test-2-constant/   >  http://www.example.com/test-constant-2/
http://www.example.com/test-3-constant/   >  http://www.example.com/test-constant-3/
我有这段代码,它不会带来不获取1,2,3个参数的所需结果-

RewriteRule ^(test-)(.+)(-constant)$ /test-constant-$2 [L,NC,R=301]

提前感谢您的帮助

这可能就是您想要的:

RewriteEngine on
RewriteRule ^/?test-(\d+)-constant/?$ /test-constant-$1/ [NC,R=301]
您对尾随斜杠的处理有问题,您使用的正则表达式可以得到增强以更精确

该rul将在http服务器主机配置或动态配置文件.htaccess样式文件中同样工作。如果可以的话,你绝对应该选择firsts选项

在你的问题中,你写的是那些URL指向的文件。上述规则集认为这是理所当然的。如果这些实际上只是虚拟文件夹,那么如果实际URL可能更长,则需要稍微修改模式:

RewriteEngine on
RewriteRule ^/?test-(\d+)-constant(/.*)$ /test-constant-$1$2 [NC,R=301]

谢谢你给我指出了正确的方向,你的精确解不起作用,但只要稍微修改一下规则^test-.[a-zA-Z-]-constant/$/test constant-$1[NC,R=301].[a-zA-Z-]?这是什么意思?任何长度后跟字母或破折号的东西。。。我怀疑这真的是你想要匹配的。。。也许您想告诉我们您的文件名在该点上实际上可以包含什么序列。是的,在随机长度的破折号之间有名称,有时还包括破折号,该模式匹配任何字符串,只要它以字母或破折号结尾。