【问题标题】:How to redirect url via .htaccess如何通过 .htaccess 重定向 url
【发布时间】:2020-05-03 07:41:44
【问题描述】:

我想通过.htaccess重定向

https://www.example.co/en/brand/Abchttps://www.example.co/en/brand/abc

我试过了

RewriteRule ^https://www.example.co/en/brand/Abc https://www.example.co/en/brand/abc [R=301,L]

【问题讨论】:

标签: .htaccess redirect mod-rewrite


【解决方案1】:

RewriteRule patternRewriteRule 指令的第一个参数)仅匹配 URL 的路径部分,即。 /en/brand/Abc。每个目录.htaccess 文件中的另一个复杂情况是匹配的 URL 路径也小于 目录前缀(总是以斜杠开头),因此 URL 路径不开始用斜线。换句话说:en/brand/Abc(用于文档根目录中的 .htaccess 文件)。

因此,您需要像这样格式化指令:

RewriteRule ^en/brand/Abc$ https://www.example.co/en/brand/abc [R=301,L]

(假设您已经定义了RewriteEngine On,并且它位于您的.htaccess 文件的顶部附近。)

参考:

【讨论】:

    【解决方案2】:

    你可以试试这样的:

    Options +FollowSymlinks -MultiViews
    RewriteEngine On
    # Don't want loops
    RewriteCond %{REQUEST_URI} !/abc 
    RewriteCond %{REQUEST_URI} /Abc 
    RewriteRule . https://www.example.co/en/brand/abc [R=301,L]
    

    URL 通常区分大小写。 Check this document,而域名不是。因此“abc”和“Abc”不一样,这就是问题所在。我想。

    【讨论】:

    • 虽然这将重定向 any URL,该 URL 仅包含 URL 路径中任何位置的 /Abc,重定向到特定的目标 URL(多对一)。此外,不需要额外的 RewriteCond 指令 - 最好尽可能使用 RewriteRule pattern 执行这些检查。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-16
    • 1970-01-01
    • 2021-04-02
    • 2017-04-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多