.htaccess 如果请求根目录,则重定向子域

cclgggtu  于 2023-03-19  发布在  其他
关注(0)|答案(1)|浏览(112)

我正在尝试设置一个重写规则,只有在请求根目录时才会重定向子域。我正在尝试将这些规则设置为全局规则,应用于我所有的域,这样我就不需要在每次设置新域时都配置这些规则。为了澄清为什么这是一个问题,因为我正在使用cPanel,它会为任何新域/帐户做很多自动化的事情...
为了解释,我希望重定向所有www、mail和mta-sts子域,以及任何www或mail子域到子域(www.subdomain.domain.tld-〉subdomain. domain. tld)。特别是对于mta-sts,我不能将请求重定向到该子域的必要文件。我尝试了许多方法来澄清只将请求重定向到根,但我没有运气。
我成功地做了我想做的大部分事情与以下:

RewriteEngine on

RewriteCond %{HTTP_HOST} ^www\.(.+?)\.(.+?)$ [NC,OR]
RewriteCond %{HTTP_HOST} ^mail\.(.+?)\.(.+?)$ [NC,OR]
RewriteCond %{HTTP_HOST} ^mta-sts\.(.+?)\.(.+?)$ [NC]
RewriteRule ^/?(.*)$ http://%1.%2/$1 [L,R=301]

RewriteCond %{HTTP_HOST} ^www\.(.+?)\.(.+?)\.(.+?)$ [NC,OR]
RewriteCond %{HTTP_HOST} ^mail\.(.+?)\.(.+?)\.(.+?)$ [NC]
RewriteRule ^/?(.*)$ http://%1.%2.%3/$1 [L,R=301]

感谢您的反馈。

ijnw1ujt

ijnw1ujt1#

谢谢CBroe的提示。这是最终的结果,干净多了。

RewriteEngine on

RewriteCond %{HTTP_HOST} ^mta-sts\.(.+?)\.(.+?)$ [NC]
RewriteRule ^/$ http://%1.%2/$1 [L,R=301]

RewriteCond %{HTTP_HOST} ^(www|mail)\.(.+?)\.(.+?)$ [NC]
RewriteRule ^/?(.*)$ http://%2.%3/$1 [L,R=301]

RewriteCond %{HTTP_HOST} ^(www|mail)\.(.+?)\.(.+?)\.(.+?)$ [NC]
RewriteRule ^/?(.*)$ http://%2.%3.%4/$1 [L,R=301]

相关问题