首页 > 解决方案 > 将网站文件夹重定向到子域

问题描述

我有 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而不是
website-3.domain.com/something

谢谢。

标签: regex.htaccessredirectsubdomain

解决方案


这是因为你匹配(website-2.*)where.*意味着零个或多个任何字符(贪婪),所以也是/something部分。

您可以创建 2 个组并检查/类似的内容:

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]

但是,由于您的匹配项差别不大,我们可以将它们包装在 1 条规则中,如下所示:

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

哪里(?:2|3)匹配website-2website-3

在您的额外信息之后

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

在视觉上

在此处输入图像描述


推荐阅读