如何通过 htaccess 将特定 url 的数量重写到子域

How to rewrite number of specific url to subdomain via htaccess

我有一个主域和许多子域,现在我想将主域重定向到它的 HTTPS,将其他域重定向到它的子域,例如:

现在我用这个

RewriteEngine On
RewriteBase /

RewriteCond %{SERVER_PORT} 80 
RewriteCond %{HTTP_HOST} ^www.main.com [OR]
RewriteCond %{HTTP_HOST} ^main.com [NC]
RewriteRule ^(.*)$ https://www.main.com/ [R,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/ [L]

此代码仅重定向 main.com,其他域必须签入 index.php 并重定向到特定的子域,我想在 htaccess 中执行整个工作。

这可能就是您要找的:

RewriteEngine On
RewriteBase /

RewriteCond %{SERVER_PORT} 80 
RewriteCond %{HTTP_HOST} ^(?:www\.)?main\.com
RewriteRule ^ https://www.main.com%{REQUEST_URI} [R=301,L]

RewriteCond %{HTTP_HOST} !^(?:www\.)?main\.com
RewriteCond %{HTTP_HOST} ^(?:www\.)?([^.]+)\.com
RewriteRule ^ https://%1.main.com%{REQUEST_URI} [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/ [L]

开始使用 R=302 临时 重定向是有意义的,然后仅将其更改为 R=301 永久 一切正常后重定向。

显然,这要求对其他域的请求由实现此规则集的 http 主机处理。因此,您很可能想为这些域定义主机别名,或者在您的 http 服务器中使用默认虚拟主机。