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

时间:2016-05-27 18:38:42

标签: 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]

如果您发现,我正尝试将 http://subdomain.domain.com 重定向到 http://www.domain.com/subdomain/ 。我认为它主要是我的主持人,它不允许我超越他们对2个子域的限制,但必须有办法解决。

注意:

  • 我正在使用CloudFlare免费提供SSL(仅在上面的代码中使用http)。

  • 我不想更改我的主机,因为除了这个问题我的所有要求都满意。

1 个答案:

答案 0 :(得分:1)

试试这个,它应该将子域重定向到子文件夹:

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]