.htaccess编辑模式问题

时间:2019-01-23 06:06:48

标签: .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-constant-3/

我有这样的代码,没有带来所需的结果(未在“-”之间获取1,2,3之间

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

谢谢您的帮助

1 个答案:

答案 0 :(得分:1)

这可能就是您要寻找的:

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]