【问题标题】:Rewrite rule only for the same part of URL仅针对 URL 的同一部分重写规则
【发布时间】:2013-02-22 08:05:50
【问题描述】:

我需要从 URL 进行重定向:

RewriteRule    ^/cars/new/(.*)/(.*)/(.*).html$        /cars/new/$1/$2/ [R=301,L] - 有效。

但是,像/cars/new/asd/qwe/zxc.html 这样的页面也使用此规则进行重定向。

而且我只需要重定向 URL,例如 /cars/new/asd/qwe/qwe.html

而不是 /cars/new/asd/some_part/ some_other_part.html

仅 /cars/new/asd/some_part/ some_part.html

请有任何建议!

更新: 工作解决方案是

RewriteRule ^cars/new/(.*)/(.*)/\2.html$    /cars/new/$1/$2/ [R=301,L]

【问题讨论】:

  • 是否有您想要匹配的模式,还是只是固定的目录/文件名?
  • 哦,我明白了。最后一个目录中的文件名将始终与目录名匹配(但附加了 .html),并且您希望将它们重定向到同一目录但没有任何文件名(/cars/new/part1/part2/part2. html -> /cars/new/part1/part2/)

标签: .htaccess redirect rewrite rule


【解决方案1】:

请试试这个正则表达式。它使用反向引用来匹配与目录名称相同的文件名。

RewriteRule ^/cars/new/(.*)/(.*)/\2\.html$ /cars/new/$1/$2/ [R=301,L]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-11-25
    • 1970-01-01
    • 2019-08-22
    • 1970-01-01
    • 2013-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多