【问题标题】:Htaccess 301 redirect on last directory matching the with a sub directoryHtaccess 301 在与子目录匹配的最后一个目录上重定向
【发布时间】:2020-03-27 01:02:27
【问题描述】:

您好,我有这样的网址

https://example.com/product-category/abc1/abc2/abc3
https://example.com/product-category/p1/p2/
https://example.com/product-category/pa1/pa2/pa3/pa4

如果条件与具有子目录产品类别的 url 匹配,则它应该重定向到 URL 的最后一个目录。

喜欢

https://example.com/product-category/abc1/abc2/abc3 to https://example.com/abc3
https://example.com/product-category/p1/p2/ to https://example.com/p2/
https://example.com/product-category/pa1/pa2/pa3/pa4 to  https://example.com/pa4/

我写过这样的代码

RedirectMatch 301 ^/product-category(.*)/([^/]+)/?$ https://example.com/$1

在 htaccess 文件中。但它不起作用。

【问题讨论】:

    标签: php regex .htaccess redirect mod-rewrite


    【解决方案1】:

    试试下面,我使用完整的 mod_rewrite 解决方案,首先检查 uri 初始部分,然后只获取 url 的最后部分。

    RewriteEngine On
    RewriteCond %{REQUEST_URI} ^/product-category
    RewriteRule (.*)/([^/]+)/?$ https://example.com/$2 [L,R=301,QSA]
    

    【讨论】:

    • 它如何关心product-category 目录?
    • @VaibhavJain 抱歉,我忽略了,请尝试编辑。
    • 是的,它正在使用重定向。你只需要再修改一次。只需添加 R=301 即可进行 301 重定向。默认情况下,它会进行 302 重定向。感谢您的解决方案。
    • @VaibhavJain 好的,很高兴为您提供帮助,如果它对您有用,可以将其标记为已接受的解决方案,这样它也可以帮助其他人。
    猜你喜欢
    • 1970-01-01
    • 2021-04-04
    • 1970-01-01
    • 2014-03-22
    • 2015-10-05
    • 2013-09-30
    • 1970-01-01
    • 1970-01-01
    • 2022-12-09
    相关资源
    最近更新 更多