2

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

我想 301 重定向 /anything-here/rc/code/ 到 /anything-here/?rc=code

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

示例 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=code&variable1=value1&variable2=value2

如果倒数第二个导演不是“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' 不是倒数第二个目录)

如果缺少斜杠,我还有另一行添加斜杠,因此在这种情况下不相关。提前谢谢了!

4

1 回答 1

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/会有错误的值。

于 2012-12-13T20:38:53.520 回答