【问题标题】:.htaccess 301 redirect based on second to last and last directory.htaccess 301 重定向基于倒数第二个和最后一个目录
【发布时间】:2012-12-14 06:36:10
【问题描述】:

我更擅长前端开发,因此非常感谢 .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' 不是倒数第二个目录)

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

【问题讨论】:

    标签: .htaccess redirect


    【解决方案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/ 将有一个错误的值。

    【讨论】:

      猜你喜欢
      • 2014-03-22
      • 2020-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多