Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.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
.htaccess 将所有子目录子页重定向到子目录根目录_.htaccess_Redirect - Fatal编程技术网

.htaccess 将所有子目录子页重定向到子目录根目录

.htaccess 将所有子目录子页重定向到子目录根目录,.htaccess,redirect,.htaccess,Redirect,我试图找到上述问题的答案,但一直无法找到。我发现的大多数示例都是将所有子目录子页重定向到根目录,而不是子目录的根目录 例如,我希望all*转到并在.htaccess中实现了以下重定向规则: RewriteCond %{QUERY_STRING} ^$ RewriteRule ^subdirectory/(.*)$ /subdirectory/ [R=301,NC,L] 我也试过: RewriteCond %{QUERY_STRING} ^$ RewriteRule ^subdirector

我试图找到上述问题的答案,但一直无法找到。我发现的大多数示例都是将所有子目录子页重定向到根目录,而不是子目录的根目录

例如,我希望all*转到并在.htaccess中实现了以下重定向规则:

RewriteCond %{QUERY_STRING}  ^$
RewriteRule ^subdirectory/(.*)$ /subdirectory/ [R=301,NC,L]
我也试过:

RewriteCond %{QUERY_STRING}  ^$
RewriteRule ^subdirectory/(.*)$ http://domain.com/subdirectory/ [R=301,NC,L]

上述两种情况都会在尝试转到--这里有什么想法或建议吗?

您需要在正则表达式中的目录名之后使用
+

RewriteCond %{QUERY_STRING}  ^$
RewriteRule ^(subdirectory)/(.+)$ /$1/ [R=301,NC,L]

否则,
子目录/*
也会匹配
/subdirectory/
,并导致重定向循环。

对我来说,答案根本不起作用,但这有:


RedirectMatch 301^/subdirectory/(.+)$/subdirectory

此规则在我的Apache上运行时没有问题。对于500,您应该检查Apache error.log并在此处报告错误