重定向子域到特定文件夹只无主域

问题描述:

我有这样一个环节:重定向子域到特定文件夹只无主域

a.site.co.il 
b.site.co.il 
... 

我配置的服务器与外卡工作,这些子域名重定向到一个文件夹,这个IP:

62.90.154.000/goin 

然后,我在62.90.154.000根上创建了一个htaccess,因此使用子域将重定向到特定的文件夹。
这方面的一个例子是:

a.site.co.il => 62.90.154.000/goin 

但IP不会重定向到布莱恩的文件夹,但是到了IP本身:

62.90.154.000 => 62.90.154.000 

这里是我的htaccess:

Options +FollowSymLinks 
RewriteEngine On 
RewriteBase/

RewriteCond %{SCRIPT_FILENAME} !-d 
RewriteCond %{SCRIPT_FILENAME} !-f 

RewriteRule ^(.+)$ /$1/ [R=301,L] 
RewriteRule ^(!62?|.*)$ goin/index.php?subdomain=$1 [L] 

这似乎工作,但问题是,这个htaccess也将主域(62.90.154.000)重新放入子域的文件夹中!
我该如何解决这个问题?

这条规则:

RewriteRule ^(!62?|.*)$ 

只是跳过REQUEST_URI与/62开始。它不会跳过你的IP地址。

您可以使用:

Options +FollowSymLinks 
RewriteEngine On 
RewriteBase/

# skip below rule for IP addresses that start with 62. 
RewriteCond %{REMOTE_ADDR} ^62\. [OR] 
RewriteCond %{HTTP_HOST} ^62\. 
RewriteRule^- [L] 

RewriteCond %{SCRIPT_FILENAME} !-f 
RewriteRule [^/]$ %{REQUEST_URI}/ [L,R=301,NE] 

RewriteCond %{HTTP_HOST} ^(?!www\.)[^.]+\.site\.co\.il$ [NC] 
RewriteRule .* /goin/$0 [L,NE] 

RewriteCond %{SCRIPT_FILENAME} !-d 
RewriteCond %{SCRIPT_FILENAME} !-f 
RewriteRule ^(.*)$ goin/index.php?subdomain=$1 [L,QSA] 

测试这种变化之前,请务必彻底清除浏览器缓存。

+0

您的示例不会为子域重定向。他们都重定向到相同的IP名称。 – Tarek

+0

你能设置一个重定向规则,以便像这样的任何子域名:a.site.co.il重定向到我的IP上的某个文件夹? – Tarek

+0

对不起,这不够清楚。我编辑了这个问题。所以:a.site.co.il => 62.90.154.000/goin AND 62.90.154.000 => 62.90.154.000(而不是62.90.154.000/goin) – Tarek