.htaccess如果301文件夹重定向不存在,则下拉到父目录

时间:2014-05-22 11:22:32

标签: apache .htaccess mod-rewrite redirect

如果文件夹重定向不存在,我希望能够将URL重定向到其父目录。

例如

如果301文件夹重定向:

RewriteRule ^CarHire/(.*)/(.*)$ drive-car/car-hire-locations/$1/$2 [L,QSA]

上述规则表示如果输入以下网址:

/ CarHire / Africa / Botswana

它会重定向到

/驱动汽车/出租汽车-位置/非洲/波扎那

但是我需要一个规则,以便如果我们说

以下网址:

/ CarHire / Africa / london(不存在)

输入

将重定向到

/ drive-car / car-hire-locations / Africa /(降级)

可选择在重定向之前检查父URL是否存在,如果没有下拉到另一个级别,直到页面确实存在(不确定这是否可行,那将是很好的)

1 个答案:

答案 0 :(得分:1)

您可以像这样添加以下检查:

RewriteCond %{DOCUMENT_ROOT}/drive-car/car-hire-locations/$1/$2 -f
RewriteRule ^CarHire/(.*)/(.*)$ /drive-car/car-hire-locations/$1/$2 [L]

RewriteCond %{DOCUMENT_ROOT}/drive-car/car-hire-locations/$1/$2 !-f
RewriteRule ^CarHire/(.*)/(.*)$ drive-car/car-hire-locations/$1 [L,QSA]