【问题标题】:Redirect root/dir to root/new/dir with .htaccess使用 .htaccess 将 root/dir 重定向到 root/new/dir
【发布时间】:2020-07-05 22:15:00
【问题描述】:

我有一个 directadmin 主机和域,我在主机中创建目录,每个目录中都有一个 index.html,其 url 如下:

example.com/sdeds

后来,我在主机上安装了一个 WordPress,并像这样折叠了新目录:

example.com/2018/asdfa

但我的旧目录位于根目录中,非常草率。我想创建新目录并移动它们,但不要错过客户拥有的地址,因为地址是作为二维码提供给客户的。这个问题有解决办法吗?

【问题讨论】:

    标签: .htaccess redirect directadmin


    【解决方案1】:

    如果您想将除 /2018/asdfa 目录(包含 WordPress)之外的所有内容从根目录重定向到新的子目录,那么您可以在 .htaccess 文件的顶部执行以下操作:

    RewriteEngine On
    
    RewriteRule !^2018/asdfa /newdirectory%{REQUEST_URI} [R=302,L]
    

    更新:如果我要排除多个目录怎么办?喜欢:2018、2019、2020

    如果它只是像您提到的那样的目录,那么在正则表达式中使用 alternation 是最简单的。例如:

    RewriteRule !^20(18|19|20)/asdfa /newdirectory%{REQUEST_URI} [R=302,L]
    

    (18|19|20) 子模式匹配181920

    如果您想匹配任何看起来像“最近”的年份,那么您可以使用更通用的模式。例如:

    RewriteRule !^20[12]\d/asdfa /newdirectory%{REQUEST_URI} [R=302,L]
    

    20[12]\d 匹配字符串(即目录)20102029(包括)。 [12] 是匹配 12 的字符类。而\d 是一个速记字符类,可以匹配任何数字 0-9(与[0-9] 相同)。

    【讨论】:

    • 如果我要排除多个目录怎么办?喜欢:2018、2019、2020
    • 您可以对这几个目录使用正则表达式 alternation。我已经更新了我的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多