需要将目录名称重定向到一个位置,同时将该目录中的文件路径定向到其他位置。
换句话说:
重定向/ 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/
答案 0 :(得分:0)
可能是它的订单。
如果您能想象事件的时间表,它将会出现:
/origdirectoryname/(file here)
301到/Adirectoryname/
然后它不会触发第二次重定向,因为它不再在origdirectoryname
上。如果您首先重定向文件,它将会:
/origdirectoryname/file.php
301到/bdirectoryname/
然后它不会触发从origdirectory
到adirectory
的重定向,因为您现在在bdirectory
上。
答案 1 :(得分: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/