在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)。
我不想更改我的主机,因为除了这个问题我的所有要求都满意。
答案 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]