Apache 使用Hostinger中的Htaccess将子域重定向到子文件夹

Apache 使用Hostinger中的Htaccess将子域重定向到子文件夹,apache,.htaccess,redirect,mod-rewrite,subdomain,Apache,.htaccess,Redirect,Mod Rewrite,Subdomain,在Hostinger中,我只有2个自由子域的限制。因此,我正在寻找使用htaccess的替代方案。找到并尝试了StackOverFlow上的几乎所有相关代码,但所有代码都重定向到404页面。以下是我在htaccess中的一次尝试: RewriteEngine on RewriteCond %{HTTP_HOST} ^(.*)\.domain\.com RewriteRule ^(.*)$ http://domain.com/%1/$1 [L,NC,QSA] 如果您注意到,我正在尝试将重定向到。

在Hostinger中,我只有2个自由子域的限制。因此,我正在寻找使用htaccess的替代方案。找到并尝试了StackOverFlow上的几乎所有相关代码,但所有代码都重定向到404页面。以下是我在htaccess中的一次尝试:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(.*)\.domain\.com
RewriteRule ^(.*)$ http://domain.com/%1/$1 [L,NC,QSA]
如果您注意到,我正在尝试将重定向到。我想这主要是我的主机,它不允许我覆盖他们2个子域的限制,但必须有办法

注:

  • 我将CloudFlare用于免费SSL(仅在上述代码中使用http作为示例)

  • 我不想更换我的主机,因为除了这个问题,我的所有要求都得到了满足


尝试此操作,它会将子域重定向到子文件夹:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^subdomain\.domain\.com$
RewriteCond %{REQUEST_URI} !^/subdomain/
RewriteRule (.*) /subdomain/$1
我有点担心它将如何与您的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/$1 [L]

我觉得这很奇怪:
RewriteRule^(.*)$http://domain.com/%1/$1[L,NC,QSA]
。应该是
RewriteRule^(.*)$http://domain.com/%1 [L,NC,QSA]
(我去掉了
$1
)?@TheManiac运气不好,还是一样:(不,仍然不起作用!虽然这次我得到了403错误。嘿@Manikiran,我在我的答案中添加了一个编辑。试试看。非常感谢你尝试,但还是没有运气。帮助台说他们阻止了未注册的子域,所以只可能有2个子域。:)没有问题,伙计。这太糟糕了。可惜只有2个子域的限制!