0

需要将目录名称重定向到一个位置,同时将该目录中的文件路径定向到其他位置。

换句话说:
重定向 /ORIGdirectoryname/ 到 /Adirectoryname/
重定向 /ORIGdirectoryname/file.php 到 /Bdirectoryname/

我发现如果我写:
redirect 301 /ORIGdirectoryname/ http://yourdomain.com/Adirectoryname/
redirect 301 /ORIGdirectoryname/file.php http://yourdomain.com/Bdirectoryname/

http://yourdomain.com/ORIGdirectoryname/file.php

http://yourdomain.com/Adirectoryname/file.php
当我希望它解决时 解决
http://yourdomain.com/Bdirectoryname/

4

2 回答 2

0

它可能是它的顺序。

如果你能想象事件的时间线,它会是:

/origdirectoryname/(file here)301到/Adirectoryname/

然后它不会触发第二次重定向,因为它不再 on origdirectoryname。如果您首先重定向文件,它将变为:

/origdirectoryname/file.php301到/bdirectoryname/

然后它不会触发从origdirectoryto的重定向adirectory,就像您现在一样bdirectory

于 2013-09-26T02:49:39.667 回答
0

Redirect指令将两个 URL 路径节点链接在一起。当你有:

redirect 301 /ORIGdirectoryname/ http://yourdomain.com/Adirectoryname/

您将目录链接/ORIGdirectoryname//Adirectoryname/,包括每个文件和子目录。所以要去:

http://yourdomain.com/ORIGdirectoryname/dir1/dir2/dir3/file.php

会将您重定向到:

http://yourdomain.com/Adirectoryname/dir1/dir2/dir3/file.php 

为了防止这种情况,您可以RedirectMatch改用:

RedirectMatch 301 ^/ORIGdirectoryname/file.php$ http://yourdomain.com/Bdirectoryname/
RedirectMatch 301 ^/ORIGdirectoryname/$ http://yourdomain.com/Adirectoryname/
于 2013-09-26T04:05:35.050 回答