Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 301 htaccess使用目录通配符重定向_Regex_.htaccess_Mod Rewrite_Redirect_Http Status Code 301 - Fatal编程技术网

Regex 301 htaccess使用目录通配符重定向

Regex 301 htaccess使用目录通配符重定向,regex,.htaccess,mod-rewrite,redirect,http-status-code-301,Regex,.htaccess,Mod Rewrite,Redirect,Http Status Code 301,有没有更有效的方法来编写这些重定向 RewriteRule ^directory/subdir/1990/010190/(.*)$ directory/editorials/$1 [L,R=301] RewriteRule ^directory/subdir/1990/020190/(.*)$ directory/editorials/$1 [L,R=301] RewriteRule ^directory/subdir/1990/030190/(.*)$ directory/editorials

有没有更有效的方法来编写这些重定向

RewriteRule ^directory/subdir/1990/010190/(.*)$ directory/editorials/$1 [L,R=301]
RewriteRule ^directory/subdir/1990/020190/(.*)$ directory/editorials/$1 [L,R=301]
RewriteRule ^directory/subdir/1990/030190/(.*)$ directory/editorials/$1 [L,R=301]
RewriteRule ^directory/subdir/1990/040190/(.*)$ directory/editorials/$1 [L,R=301]
RewriteRule ^directory/subdir/1990/050190/(.*)$ directory/editorials/$1 [L,R=301]
RewriteRule ^directory/subdir/1990/060190/(.*)$ directory/editorials/$1 [L,R=301]
似乎我需要一个通配符作为
/1990/


能够做到这一点将大大减少重定向的数量,使其更易于管理。任何帮助或提示,不胜感激

您可以对所有这些规则使用单个规则:

RewriteRule ^directory/subdir/1990/0[1-6]0190/(.*)$ directory/editorials/$1 [L,R=301]

伟大的你会得到复选标记,但如果我用目录代替1990年,比如1991年、1992年、1993年等等,会怎么样呢。。重定向规则删除了所有的“subdir/1991/010190/”,所以也可以简单地这样做吗?在聊天案例中,我们可以尝试使用regex替换,比如
(1990/010190 | 1991/020190 | 1992/020190)