代码之家  ›  专栏  ›  技术社区  ›  Laurent

将网站文件夹重定向到子域

  •  1
  • Laurent  · 技术社区  · 6 年前

    我有3个这样的网站

    Website 1 : domain.com  
    Website 2 : domain.com/website-2/something  
    Website 3 : domain.com/website-3/something  
    

    现在我想使用而不是文件夹子域

    Website 1 : domain.com  
    Website 2 : website-2.domain.com/something  
    Website 3 : website-3.domain.com/something  
    

    所以我需要用这个htaccess规则重定向

    RewriteEngine On
    RewriteRule ^(website-2.*)$ http://website-2.domain.com/$1 [R=301,L,NC]
    RewriteRule ^(website-3.*)$ http://website-3.domain.com/$1 [R=301,L,NC]
    

    但我不知道这是否正确,因为这不适合 网站3 重定向是这样的 website-3.domain.com/website-3/something网站 而不是
    网站-3.domain.com/something

    谢谢。

    3 回复  |  直到 6 年前
        1
  •  1
  •   Ron van der Heijden    6 年前

    这是因为你匹配 (website-2.*) 哪里 .* 表示任何字符的零个或多个(贪心),因此 /something 部分。

    您可以创建两个组并检查 / 像这样:

    RewriteEngine On
    RewriteRule ^(website\-2)\/?(.*)$ http://website-2.domain.com/$2 [R=301,L,NC]
    RewriteRule ^(website\-3)\/?(.*)$ http://website-3.domain.com/$2 [R=301,L,NC]
    

    但是,由于你们的比赛并没有太大的不同,我们可以用一条规则来概括,比如:

    RewriteEngine On
    RewriteRule ^(website\-(?:2|3))\/?(.*)$ http://$1.domain.com/$2 [R=301,L,NC]
    

    哪里 (?:2|3) 比赛 website-2 website-3 .

    在你的额外信息之后

    RewriteEngine On 
    RewriteRule ^(pierre|argile)\/?(.*)$ http://$1.lafaure.info/$2 [R=301,L,NC]
    

    在视觉上

    enter image description here

        2
  •  0
  •   Laurent    6 年前

    如果比赛中是A,没问题吧?

    RewriteEngine On 
    RewriteRule ^(pierre-de-taille|argile-bentonitique)\/?(.*)$ 
    http://$1.lafaure.info/$2 [R=301,L,NC]
    
        3
  •  0
  •   Laurent    6 年前

    如果我需要重定向呢?

    lafaure.info/pierre-de taille/something to pierre.lafaure.info/something  
    lafaure.info/argile-bentonitique/something to argile.lafaure.info/something