在 Hostinger 中使用 Htaccess 将子域重定向到子文件夹
Redirect Subdomains to Subfolders using Htaccess in Hostinger
在 Hostinger 中,我限制只有 2 个免费子域。所以我一直在寻找使用 htaccess 的替代方法。在 Whosebug 上找到并尝试了几乎所有相关代码,但它们都重定向到 404 页面。以下是我在htaccess中的尝试之一:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(.*)\.domain\.com
RewriteRule ^(.*)$ http://domain.com/%1/ [L,NC,QSA]
如果您观察到,我正在尝试重定向 http://subdomain.domain.com to http://www.domain.com/subdomain/。我认为它主要是我的主机,它不允许我覆盖他们对 2 个子域的限制,但必须有办法解决。
注:
我正在使用 CloudFlare 免费 SSL(在上面的代码中仅使用 http 作为示例)。
我不想换主机,因为我的要求都满足了,除了这个问题
试试这个,它应该将子域重定向到子文件夹:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^subdomain\.domain\.com$
RewriteCond %{REQUEST_URI} !^/subdomain/
RewriteRule (.*) /subdomain/
我有点担心它如何与您的 2 个子域限制一起使用,下面是您也可以尝试的另一种选择:
RewriteCond %{HTTP_HOST} ^subdomain\.domain\.com$
RewriteRule ^$ http://www.domain.com/subdomain/?&%{QUERY_STRING}
编辑 1:
RewriteCond %{HTTP_HOST} ^([^/.]+)\.domain\.com$
RewriteCond %1 !^(www|ftp|mail)$ [NC]
RewriteRule (.+)$ "http://domain.com/%1" [L,P]
编辑 2:
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} ^subdomain\.domain\.com$ [NC]
RewriteCond %{REQUEST_URI} !^/subdomain(/|$) [NC]
RewriteCond %{REQUEST_FILENAME} !-d # not a dir
RewriteCond %{REQUEST_FILENAME} !-f # not a file
RewriteRule ^(.*)$ subdomain/ [L]
在 Hostinger 中,我限制只有 2 个免费子域。所以我一直在寻找使用 htaccess 的替代方法。在 Whosebug 上找到并尝试了几乎所有相关代码,但它们都重定向到 404 页面。以下是我在htaccess中的尝试之一:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(.*)\.domain\.com
RewriteRule ^(.*)$ http://domain.com/%1/ [L,NC,QSA]
如果您观察到,我正在尝试重定向 http://subdomain.domain.com to http://www.domain.com/subdomain/。我认为它主要是我的主机,它不允许我覆盖他们对 2 个子域的限制,但必须有办法解决。
注:
我正在使用 CloudFlare 免费 SSL(在上面的代码中仅使用 http 作为示例)。
我不想换主机,因为我的要求都满足了,除了这个问题
试试这个,它应该将子域重定向到子文件夹:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^subdomain\.domain\.com$
RewriteCond %{REQUEST_URI} !^/subdomain/
RewriteRule (.*) /subdomain/
我有点担心它如何与您的 2 个子域限制一起使用,下面是您也可以尝试的另一种选择:
RewriteCond %{HTTP_HOST} ^subdomain\.domain\.com$
RewriteRule ^$ http://www.domain.com/subdomain/?&%{QUERY_STRING}
编辑 1:
RewriteCond %{HTTP_HOST} ^([^/.]+)\.domain\.com$
RewriteCond %1 !^(www|ftp|mail)$ [NC]
RewriteRule (.+)$ "http://domain.com/%1" [L,P]
编辑 2:
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} ^subdomain\.domain\.com$ [NC]
RewriteCond %{REQUEST_URI} !^/subdomain(/|$) [NC]
RewriteCond %{REQUEST_FILENAME} !-d # not a dir
RewriteCond %{REQUEST_FILENAME} !-f # not a file
RewriteRule ^(.*)$ subdomain/ [L]