【问题标题】:how to redirect url using custom logic in .htaccess?如何在 .htaccess 中使用自定义逻辑重定向 url?
【发布时间】:2020-11-17 06:48:08
【问题描述】:

我想使用项目根文件夹中的 htaccess 文件重定向 url。

我可以使用这个轻松地将www.xyz.com/ar/contact 之类的网址重定向到www.xyz.com/contact

Redirect 301 /ar/contact/ /contact/

但是如何像这样重定向网址

www.xyz.com/ar/shop/xyz.htmlwww.xyz.com/shop/xyz.html

我试过了

Redirect 301 /ar/shop/^(.*)$ /shop/$1

Redirect /ar/shop/^(.*)$ /shop/$1 [R=301,L]

Redirect ^/ar/shop/(.*) /shop/$1

但它没有用。

【问题讨论】:

  • Redirect 指令使用 prefix-matching 并将匹配后的所有内容附加到目标 URL 的末尾 - 因此您的第一条规则已经满足您的要求。见Apache docs

标签: apache .htaccess redirect mod-rewrite url-rewriting


【解决方案1】:

您不能在Redirect 指令中使用基于正则表达式的模式。如果您想将/ar/shop/ 之后的所有内容重定向到/shop/,那么只需使用静态模式/ar/shop/

Redirect 301 /ar/shop/ /shop/

这会将所有以 /ar/shop/ 开头的 URI 重定向到 /shop/ 。例如/ar/shop/foobar 将被重定向到/shop/foobar > .

【讨论】:

    【解决方案2】:

    请您尝试以下操作。仅使用所示示例编写和测试。

    RewriteEngine On
    RewriteCond %{REQUEST_URI} ^/ar/(.*)/? [NC]
    RewriteRule ^(.*) /%1 [R=301,NE,L]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-04-16
      • 1970-01-01
      • 1970-01-01
      • 2012-03-12
      • 1970-01-01
      • 2014-09-25
      • 1970-01-01
      相关资源
      最近更新 更多