如何通过 htaccess 将特定 url 的数量重写到子域
How to rewrite number of specific url to subdomain via htaccess
我有一个主域和许多子域,现在我想将主域重定向到它的 HTTPS,将其他域重定向到它的子域,例如:
- main.com 重定向到 https://main.com
- domain1.com 重定向到域 1。main.com
- domain2.com 重定向到域 2。main.com
现在我用这个
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 服务器中使用默认虚拟主机。
我有一个主域和许多子域,现在我想将主域重定向到它的 HTTPS,将其他域重定向到它的子域,例如:
- main.com 重定向到 https://main.com
- domain1.com 重定向到域 1。main.com
- domain2.com 重定向到域 2。main.com
现在我用这个
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 服务器中使用默认虚拟主机。