.htaccess 301重定向基于倒数第二个到最后一个目录

时间:2012-12-13 19:21:40

标签: .htaccess redirect

我对前端开发更好,所以我非常感谢.htaccess 301重定向的帮助。

我想301重定向/任何 - 这里/ rc / code / to / anything-here /?rc = code

示例1: //www.domain.com/any_directory/other_directory/rc/code/应该301重定向到//www.domain.com/any_directory/other_directory/?rc=code < / p>

示例2: //www.domain.com/rc/code/应该301重定向到//www.domain.com/?rc=code

它还应该保留一个潜在的查询字符串(任意数量的变量)。

示例3: //www.domain.com/any_directory/other_directory/rc/code/?variable1=value1&variable2=value2应该301重定向到//www.domain.com/any_directory ?/ other_directory / RC =代码&安培;变量1 =值1&安培;变量2 =值2

如果倒数第二个导演不是'rc'(完全匹配),则不应重定向。

示例4: //www.domain.com/any_directory/rc/other_directory/code/不应重定向('rc'不是最后一个目录的第二个)

示例5: //www.domain.com/code/rc/不应重定向('rc'不是最后一个目录的第二个)

示例6: //www.domain.com/arc/code/不应重定向(没有'rc'目录)

示例7: //www.domain.com/rc/不应重定向('rc'不是最后一个目录的第二个)

我有另一条线,如果它缺少则添加一个尾部斜线,因此在这种情况下它不相关。非常感谢提前!

1 个答案:

答案 0 :(得分:1)

你可以试试这个:

RewriteEngine On
RewriteBase /Test
RewriteCond %{REQUEST_URI}  ^(.*)/rc/(\w+)/?$
RewriteRule  ^   %1/?rc=%2&%{QUERY_STRING}  [R=301,L]

如果不重定向,请执行以下操作:http://www.domain.com/code/rc/文件夹 rc必须存在,否则会生成错误404。

您不应该在查询中添加尾部斜杠。

http://www.domain.com/any_directory/other_directory/?rc=code&variable1=value1

不同于:

http://www.domain.com/any_directory/other_directory/?rc=code&variable1=value1/

最后variable1=value1/的值会有错误。