重定向所有内容,一个子域除外

时间:2019-05-20 07:37:52

标签: regex .htaccess subdomain

所有内容都必须重定向到www.domain.com。除了test.domain.com。它将托管该网站的新版本以进行测试。 这两个域都需要在其Web目录中查找。

我已经搜索了堆栈溢出,但是似乎没有类似的问题为我提供可行的解决方案。可能是因为我对htacces / regex不太了解。

这是我的.htacces文件的当前内容。

RewriteEngine on

RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
RewriteCond %{REQUEST_URI} !web/
RewriteRule (.*) /web/$1 [L]

1 个答案:

答案 0 :(得分:0)

在您的第二行(其中测试是您的子域)中尝试以下操作:

RewriteCond %{HTTP_HOST} !^(www|test)\.

!取消比赛。

方括号是正则表达式组。

管道符号是一个或。

这应该是“让我匹配除www。&test以外的所有子域。”

这里的Regex101链接可能有助于进一步说明并提供我的测试数据:

https://regex101.com/r/5udsER/1/

免责声明

我写了这个afk,因此它缺少端到端测试,但应该有效。